prüfen ob eingabefeld leer ist

Hi

Variablen nur 1x deklarieren.

Dann kann dies raus, zum einen hast Du es doppelt drin zum andern nützt Dir die ganze Validierung nix, wenn Du bei Nichtbefülles des Formulars Standardwerte vergibst.

dim Nachname, Vorname

' --- name ist ein reserviertes Wort, könnte auch Probleme machen.
productName = Replace(trim(Request.Form("productName")),"'","''")
productPrice =Replace(trim(Request.Form("productPrice")),"'","''")
productPicture =Replace(trim(Request.Form("productPicture")),"'","''")

IF productName= ""THEN productName= "?"
IF productPrice= ""THEN productPrice= "?"
IF productPicture= ""THEN productPicture="?"
 
Achso.

So müsste das doch auch gehen. Da macht er mir das mit den Fehlermeldungen. Aber er exportiert trotzdem. Trotz den Fehlermeldungen. Es kommen halt die Fehlermeldungen und unten steht direkt Anmeldung erfolreich. Man muss doch da nur noch was umstellen.
Der Benutzer soll wenn die Fehlermeldung kommt auf back klicken damit er die Felder erneut ausfüllen soll. Das werden ja auch nur 4 Felder. Da mus er sie halt nochmal alle ausfüllen. Das macht nichts.

Code:

<%
'Auslesen der Formularfelder
addProduct =TRIM( Request("Anmelden"))

productName =TRIM(Request( "productName"))
productPrice =TRIM(Request( "productPrice"))
productPicture =TRIM(Request( "productPicture"))
name =TRIM(Request( "name"))
vorname =TRIM(Request( "vorname"))

'Standardwerte zuweisen
IF productName= ""Then
productName= "?"
END IF
IF productPrice= ""THEN
productPrice= "?"
END IF
IF productPicture= ""THEN
productPicture="?"
END IF
IF vorname= ""Then
vorname= "?"
END IF
IF name= ""Then
name= "?"
END IF

if Request.Form("productName")= "" THEN
Response.Write("<li>Sie muessen den Produktnamen eingeben.</li>")
END IF
if Request.Form("productPrice")= "" THEN
Response.Write("<li>Sie muessen den Produktpreis eingeben.</li>")
END IF
if Request.Form("productPicture")= "" THEN
Response.Write("<li>Sie muessen das Produktbild eingeben.</li>")
END IF

'Öffnen der Datenbankverbindung
Set Con = Server.CreateObject( "ADODB.Connection")
Con.Open "accessDSN"
%>
<html>
<head><title>Manage Products</title></head>

<%
'Neues Produkt hinzufügen
IF addProduct <> "" THEN

sqlString = "INSERT INTO Products (product_name,product_price,product_picture) VALUES ('" & productName & "', '" & productPrice &"', '" & productPicture &"')"

Con.Execute sqlString
%>
<center>
<table width="600" cellpadding="4" cellspacing="0">
<tr>
<td>
Anmeldung erfolgreich
</td>
</tr>
</table>
</center>
<p></p>
<%
END IF
%>
<a href="addproduct.asp">back</a>
</body>
</html>
 
Es klappt jetzt.
Habe es so gemacht wie in dem letzten Beispiel. Habe nur noch ein else hinzufügen müsen.

Trotzdem nochmal vielen vielen Dank das du dir die Mühe gemacht hast:-)

Liebe Grüße und noch einen schönen sonnigen Tag.

sunflower
 
Hi

Was will er auch anders machen, das ist völlig korrekt!
Jede Anweisung ist abgeschlossen und hat keine Auswirkungen auf das Insert-Statement.

Und Widersinnig ist es auch

Du vergibst Standardwerte in Form von ? und gleichzeitig möchtest Du für das Feld eine Feldvalidierung (einen Eingabezwang)

Überleg Dir das einfach mal.
Die Felder werden nie mit Fragezeichen beschrieben werden, außer, der User gibt sie selbst ein.

Die ganze Fragezeichen-Geschichte kannst Du für die Felder vergessen, wo die Eingabe eh erzwungen wird.

Hier ist mal ein Beispiel mit einer Feldvalidierung über Javascript. Vielleicht kommst Du damit besser klar. Nachteil ist halt, wenn Javascript abgestellt ist, findet keine Validierung statt. Vorteil ist, das Formular wird nicht immer neu geladen.

HTML:
<html>
<head>
<title>Kontaktformular</title>
</head>
<script language="JavaScript">
function Validation(theForm)
{

  if (theForm.Name.value == "")
  {
    alert("Geben Sie einen Wert in das Feld 'Name' ein.");
    theForm.Name.focus();
    return (false);
  }

  if (theForm.Name.value.length < 2)
  {
    alert("Geben Sie mindestens 2 Zeichen in das Feld 'Name' ein.");
    theForm.Name.focus();
    return (false);
  }

  if (theForm.Vorname.value == "")
  {
    alert("Geben Sie einen Wert in das Feld 'Vorname' ein.");
    theForm.Vorname.focus();
    return (false);
  }

  if (theForm.Vorname.value.length < 3)
  {
    alert("Geben Sie mindestens 3 Zeichen in das Feld 'Vorname' ein.");
    theForm.Vorname.focus();
    return (false);
  }
 if (theForm.check.checked == false)
  {
    alert("Bitte checkbox check anklicken.");
    theForm.check.focus();
    return (false);
  }

}

function SetFocus_()
{
   document.Form1.Name.focus();
}
</script>
<body onLoad="SetFocus_()" bgcolor="#FFFFFF">
<form METHOD="POST" ACTION="test.php" onsubmit="return Validation(this)" name="Form1">
<p><font face="Arial" size="2">
Bitte geben Sie die folgenden Kontaktinformationen ein.<br>
Achten Sie dabei darauf die <b><i>fett gekennzeichneten Felder</i></b>
auszufüllen.</font></p>
<table>
<tr>
<td ALIGN="right" bgcolor="#B0CACA">
<em><b><font face="Arial" size="2">Name</font></b></em></td>
<td>
<font face="Arial" size="2">
<input NAME="Name" SIZE="35">
</font>
</td>
</tr>
<tr>
<td ALIGN="right" bgcolor="#B0CACA">
<em><b><font face="Arial" size="2">Vorname</font></b></em></td>
<td>
<font face="Arial" size="2">
<input NAME="Vorname" SIZE="35">
</font>
</td>
</tr>
</table>
<input name="check" type="checkbox" id="check" value="on">
<hr color="#808080">
<font face="Arial">
<input type="hidden" name="subject" value="Testformular"><input TYPE="SUBMIT" VALUE="Abschicken">
<input TYPE="RESET" VALUE="Zurücksetzen">
</font>
</form>
<p>
<font face="Arial" size="1">
</font></body>
</html>
 
hallo

Stimmt, die Fragezeichen kann ich weg lassen. Danke das du dir die Mühe gemacht hast mit JavaScript. Ich schau mir das auch nochmal an. Besser ist es auf jeden Fall.

LG
Sunflower
 
Danke nochmal an alle.
Habe es aber gerade selbst hin bekommen. Hab einfach in der HTML des Flash Filmes die Größe angepasst.
Das wars schon :-)

LG
Sunflower
 
Zurück