/ PHP : PHP-Array in Javascript überprüfen
Andreas Cloos
- javascript
Hallo Zusammen,
ich habe ein durch PHP dynamisch erzeugtes Formular das zwischen 0 und (theoretisch) unendlich vielen Input-Feldern enthält. Weil die aber gleichartig sind lasse ich die Werte in ein Array übergeben (input type="text" name="container[]"), die ich mit PHP auch problemlos auslesen kann.
Allerdings soll das Dokument vor dem Absenden mittels Javascript auf leere Felder geprüft werden. Derzeit mache ich das so:
<script type='text/javascript'>
function chkFormular() {
for (var i=0;i<document.udpp.container.length;i++) {
if (container[i] == "") {
alert("Bitte eine Zahl eingeben!");
document.udpp.container[i].focus();
return false; }
}
}
</script>
Leider funktioniert das nicht. Gefunden abe ich auf der Suche nach einer Lösung folgendes:
</archiv/2002/4/10543/#m58497> und auch http://groups.google.de/groups?hl=de&lr=lang_de&ie=UTF-8&threadm=3A1AF218.4010206%40jobsintown.de&rnum=3&prev=/groups%3Fq%3Djavascript%2Bphp%2Barray%2Bpr%25C3%25BCfen%26hl%3Dde%26lr%3Dlang_de%26ie%3DUTF-8%26selm%3D3A1AF218.4010206%2540jobsintown.de%26rnum%3D3. Geholfen hat mir das leider auch nicht.
Hallo Andreas,
Allerdings soll das Dokument vor dem Absenden mittels
Javascript auf leere Felder geprüft werden. Derzeit mache
ich das so:<script type='text/javascript'>
function chkFormular() {
for (var i=0;i<document.udpp.container.length;i++) {
if (container[i] == "") {
alert("Bitte eine Zahl eingeben!");
document.udpp.container[i].focus();
return false; }
}
}
</script>Leider funktioniert das nicht.
Kein Wunder. Wenn du Glueck hast, wirst du das ueber den
Zahlen-Index in 'document.udpp.elements' ansprechen koennen,
also etwa so:
for(i=0;i<document.udpp.elements.length;i++) {
// tu was mit document.udpp.elements[i]
}
Wenn du Pech hast, geht auch das nicht, weil die Elemente
durch den Namen ueberschrieben werden. Auf keinen Fall kannst
du aber mit den Namen arbeiten. Die Namen sind schliesslich
bei allen input-Elementen gleich.
Gruesse,
CK
Hallo,
Auf keinen Fall kannst
du aber mit den Namen arbeiten. Die Namen sind schliesslich
bei allen input-Elementen gleich.
Man kann ueber die elements-Collection auch auf mehrere Felder mit dem Namen feldname[] pruefen, z. B. die Werte abfragen:
document.formularname.elements["feldname[]"][i].value
mit i=0 bis document.formularname.elements["feldname[]"].length-1
MfG, Thomas
Moin, Du kleiner Münsterländer,
bist ein Schatz, könnte Dich knutschen ;-) So gehts! Dann war die Archivsuche in dem Fall sinnlos, weil die Lösung da flasch zu sein scheint...
Hallo Zusammen,
ich habe ein durch PHP dynamisch erzeugtes Formular das zwischen 0 und (theoretisch) unendlich vielen Input-Feldern enthält. Weil die aber gleichartig sind lasse ich die Werte in ein Array übergeben (input type="text" name="container[]"), die ich mit PHP auch problemlos auslesen kann.
Allerdings soll das Dokument vor dem Absenden mittels Javascript auf leere Felder geprüft werden. Derzeit mache ich das so:
<script type='text/javascript'>
function chkFormular() {
for (var i=0;i<document.udpp.container.length;i++) {
if (container[i] == "") {
alert("Bitte eine Zahl eingeben!");
document.udpp.container[i].focus();
return false; }
}
}
</script>Leider funktioniert das nicht. Gefunden abe ich auf der Suche nach einer Lösung folgendes:
Es funktioniert nicht ist eine nutzlose Fehlerbeschreibung.
Aber da dieses Problem ungefähr alle zwei Stunden gefragt wird:
<form onsubmit="return chkFormular(this);">
....
</form>
<script>
function chkFormular(f) {
for (var i = 0; i < f['container[]'].length;i++) {
if (!f['container[]'][i]) {
alert("Bitte eine Zahl eingeben!");
f['container[]'][i].focus();
return false; }
}
return true;
}
</script>