stephan: Leere Tabelleneinträge beim Aktualisieren unterbinden!

Hallo alle!

Ich hab da ein Formular zur Eingabe der Daten.
Der ASP-Code zum Einlsen der Daten sieht so aus:

<%
  Bezeichnung = Request.Form("Bezeichnung")
  Beschreibung = Request.Form("Beschreibung")
  Name = Request.Form("Name")

SQLStmt = "INSERT INTO HardwareBoerse (Bezeichnung, Beschreibung,  
  Name) VALUES ('" &Bezeichnung&"','" &Beschreibung& "','"  
  &Name& "')"

Hardwaredb.Execute(SQLStmt)
%>

Allerdings wird bei diesem Code beim erstmaligen Aufruf der Seite im Internet Explorer bereits ein leerer Datensatz in die Tabelle aufgenommen. Dasselbe passiert bei jedem klick auf den "Aktualisieren-Button".
Wie kann ich das unterbinden, dass ein leerer und somit unerwünschter Datensatz hinzugeüft wird? Gibt'S dafpr ein Javascript oder sonst eine Lösung.

Bitte um Hilfe!

CU,
stephan

  1. Ich hab da ein Formular zur Eingabe der Daten.
    Der ASP-Code zum Einlsen der Daten sieht so aus:

    <%
      Bezeichnung = Request.Form("Bezeichnung")
      Beschreibung = Request.Form("Beschreibung")
      Name = Request.Form("Name")

    SQLStmt = "INSERT INTO HardwareBoerse (Bezeichnung, Beschreibung,  
      Name) VALUES ('" &Bezeichnung&"','" &Beschreibung& "','"  
      &Name& "')"

    Hardwaredb.Execute(SQLStmt)
    %>

    Allerdings wird bei diesem Code beim erstmaligen Aufruf der Seite im Internet Explorer bereits ein leerer Datensatz in die Tabelle aufgenommen. Dasselbe passiert bei jedem klick auf den "Aktualisieren-Button".
    Wie kann ich das unterbinden, dass ein leerer und somit unerwünschter Datensatz hinzugeüft wird? Gibt'S dafpr ein Javascript oder sonst eine Lösung.

    Bitte um Hilfe!

    CU,
    stephan

    Hallo Stephan,

    Ich hab da ein Formular zur Eingabe der Daten.
    Der ASP-Code zum Einlsen der Daten sieht so aus:

    <%

    »»   Bezeichnung = Request.Form("Bezeichnung")
    »»   Beschreibung = Request.Form("Beschreibung")
    »»   Name = Request.Form("Name")

    If Bezeichnung <> "" And Beschreibung <> "" And Name <> "" Then
    »»       SQLStmt = "INSERT INTO HardwareBoerse (Bezeichnung, Beschreibung,  
    »»       Name) VALUES ('" &Bezeichnung&"','" &Beschreibung& "','" &Name& "')"

    »»       Hardwaredb.Execute(SQLStmt)
         End if

    %>

    Du musst lediglich prüfen, ob Deine Felder sinnige Inhalte (in diesem Fall <> "" haben und nur dann den Insert ausführen

    Tschau, Stefan

  2. Hallo Stephan,

    kein Wunder. Dein ASP-Code steht einfach herum. Deswegen wird bei jedem Aufruf ein leerer Satz in die Tabelle aufgenommen. Leer, weil
    dein Frormular kein Inhalt hat.
    Du müßt entweder dein ASP in einer anderen Seite schreiben und von der ersten Seite die zweite aufrufen oder die ausfürung von ASP von einer IF-Abfrage abhängig machen etwa so:

    IF KEY<>0 THEN
      Bezeichnung = Request.Form("Bezeichnung")
      Beschreibung = Request.Form("Beschreibung")
      Name = Request.Form("Name")

    SQLStmt = "INSERT INTO HardwareBoerse (Bezeichnung, Beschreibung,  
      Name) VALUES ('" &Bezeichnung&"','" &Beschreibung& "','"  
      &Name& "')"

    Hardwaredb.Execute(SQLStmt)
    END IF

    und bei erneutem Aufruf den KEY auch mitübertragen:
    wenn die Seite TEST heißt.
    <a href="test.asp?KEY=1">KLICKEN</a>
    beim Formular <form method="post" action="test.asp?KEY=1">

    ich emfehle dir aber eine neue Seite dafür anzulegen. Wenn die zweite
    Seite TEST1 heißt:

    <a href="test1.asp">KLICKEN</a> oder
    <form method="post" action="test1.asp">

    um von der zweiten Seite wieder Automatich auf die ersten zurück zu kommen, benutz der folgenden befehl ganz unten auf der letzten zeile:

    RESPONSE.REDIRECT REQUEST.SERVERVARIABLES("HTTP_REFERER")

    Sohail