• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

leere Eingabe abfangen

asterix3

New member
Hallo zusammen

Ich habe folgende JavaScript-Formular-Abfang-Regel:

HTML:
if (document.name1.zahl1.value == 'wählen') {
	alert("Bitte Zahl auswählen");
   document.name1.zahl1.focus();
   return false;
    }

das hier soll abgefangen werden:

HTML:
<option  selected="selected"  value="<?php echo htmlentities($_SESSION['zahl1'], ENT_COMPAT, 'UTF-8'); ?>"><?php if (isset($_SESSION['zahl1'])) { echo $_SESSION['zahl1']; } else { echo  'wählen'; } ?></option>

Wie muss ich abfangen, wenn das Klappfeld noch ein 'wählen' drin hat?
"N/A", "" und div. habe ich schon versucht, komme einfach nicht drauf.
Danke für Hilfe!
 
das Klappfeld wird in einem Formluar drin ausgeben.

Code:
<form id="form55" name='form1' action="aendern.php" method="post" onSubmit="return chkFormular()"> 

<option  selected="selected"  value="<?php echo htmlentities($_SESSION['zahl1'], ENT_COMPAT, 'UTF-8'); ?>">
<?php if (isset($_SESSION['zahl1'])) { echo $_SESSION['zahl1']; } else { echo  'wählen'; } ?></option>

<td  colspan="2"><input type="submit" name="send" id="send" value="Daten übernehmen" /></td>
  <input type="hidden" name="form" value="form55" /> </td></tr>

Die Checkfunktion ist diese:
Code:
function chkFormular() {if (document.name1.zahl1.value == 'wählen') {
	alert("Bitte Zahl auswählen");
   document.name1.zahl1.focus();
   return false;
}
    }


Weil es nicht abgefangen wird bekomme ich lokal folgende Nachricht in die DB geschrieben:
<br /> <b>Notice</b>: Undefined index: zahl1 in <b>/Applications/XAMPP/xamppfiles/htdocs/index.php</b> on line <b>137</b><br />
Online bekomme ich einen leeren Eintrag (den ich aber eben verhindern möchte).
 
if (document.name1.zahl1.value == 'wählen') {
...
document.name1.zahl1.focus();
du hast weder ein form mit dem namen "name1" noch ein inputfield mit dem namen "zahl1"
document.forms[formName].elements[fieldName]

ps: setze den onsubmit eventlistener bitte mit javascript, nicht im html
 
Gib dir doch mal den Wert, den du prüfst, mit alert aus. Dir sollte da was auffallen. Und wo kommt das "name1" und das "zahl1" in "document.name1.zahl1.value" her? Das solltest du ebenfalls prüfen.
EDIT: 100ster Beitrag und zirzofer war schneller
 
Das habe ich oben schon mit alert ausgegeben: Es kommt: undefined index (habe ich oben genauer geschrieben)

Der Select sieht so aus:

Code:
        <select name="zahl1" id="id1">
<option  selected="selected"  value="<?php echo htmlentities($_SESSION['zahl1'], ENT_COMPAT, 'UTF-8'); ?>"><?php if (isset($_SESSION['zahl1'])) { echo $_SESSION['zahl1']; } else { echo  'wählen'; } ?></option>

und name1 heisst das Formular, da habe ich falsch abgeschrieben, sorry.
Ich komme noch nicht draus, was falsch ist.
 
@asterix3
kannst du dir mal im Browser den Quellcode anzeigen lassen und dann das betreffende Select kopieren
und hier posten. Weil niemand wissen kann was den mit echo eingefügt wurde.
Vielleicht liefert ja schon das php falsche Ergebnisse.
 
das select im Quellcode sieht so aus:

<option selected="selected" value="">wählen</option>

aber ich wollte auch mit "" abfangen, funktioniert leider auch nicht.
 
es kann dir keiner helfen, wenn du nicht mehr - zusammenhängenden!! - code zeigst. an diesen wenigen schnipseln ist jetzt bisher nicht wirklich ein fehlr festzustellen.
lass dir wie vorgeschlagen
@asterix3
mal im Browser den Quellcode anzeigen
und füge den hier ein!
 
Danke für eure Hilfen!
So funktioniert es:

Code:
<option  selected="selected"  value="<?php if (isset($_SESSION['zahl1'])) { echo htmlentities($_SESSION['zahl1'], ENT_COMPAT, 'UTF-8'); } ?>"><?php if (isset($_SESSION['zahl1'])) { echo $_SESSION['zahl1']; } else { echo  'wählen'; } ?></option>
 
"zahl1" war in $_SESSION nicht definiert. Stand ja auch schon in dieser Fehlermeldung:
<br /> <b>Notice</b>: Undefined index: zahl1 in <b>/Applications/XAMPP/xamppfiles/htdocs/index.php</b> on line <b>137</b><br />

@Asterix: auch innerhalb des <option>s solltest du deine Ausgabe mit htmlentities machen.
 
Zurück
Oben