Elya: Via JS/DOM eingehängte form-Elemente übergeben Werte nicht (FF)

Beitrag lesen

Hallo,

wieder mal Javascript... Folgendes Szenario:

In einem größeren "create customer"-Formular wird per Select ein Status ausgewählt und abhängig davon onchange unterschiedliche weitere Formularfelder  eingeblendet (display), die vorher per createElement eingehängt worden sind. Dies funktioniert soweit fehlerlos in FF und IE(6). Was im FF nicht funktioniert, ist die Übergabe der Werte via POST an das PHP-Script.

Genauer:

  • Status wird auf "FOO" gesetzt
  • Einblenden Formularblock mit einigen hart codierten und einigen zusätzlich erzeugten Elementen
  • Button "weiteren PLZ-Bereich einfügen"
  • Einhängen weiterer 2 Felder "PLZ-Bereiche"
  • speichern der Anzahl der PLZ-Bereich-Felder in ein hidden input.

--> Ausfüllen, Absenden des Formulars. Übergabe der Werte per POST an PHP.

Das ganze ebenso bei bereits vorhandenen Datensätzen, auch hier können neue PLZ-Felder hinzugefügt werden.

So wurden die Felder erzeugt:

  
var count_current_entries = document.getElementById("plz_region_list").getElementsByTagName("li").length;  
// plz_region_list ist die umgebende <ul>  
var new_region = document.createElement("li");  
new_region.setAttribute("id", "dealer_codearea_"+ (count_current_entries + 1) );  
new_region.setAttribute("class", "plz_region_list");  
new_region.innerHTML = '<input type="text" name="dealer_codearea_from_'+ (count_current_entries+1) +'" id="dealer_codearea_from_'+ (count_current_entries+1) +'">&nbsp;-&nbsp;<input type="text" name="dealer_codearea_to_'+ (count_current_entries +1) +'" id="dealer_codearea_to_'+ (count_current_entries +1) +'">';  
document.getElementById("plz_region_list").appendChild(new_region);  

Per JS ließen sich die erzeugten Elemente sowohl mit getElementById als auch  mit getElementsByName mit ihrem korrekt erzeugten Namen ansprechen, auch eingegebene Werte konnten wir sauber abfragen. Was nicht ging: Per Schleife die form-Elemente durchzählen und sich die Namen per alert() ausgeben lassen. Die zeigte IE sauber an, beim FF fehlten die Namen der erzeugten Elemente.

Alternativ haben wir probiert, die <input>-Felder auch per createElement einzuhängen und auch die Attribute direkt per object.name zuzuweisen. Machte im Ergebnis keinen Unterschied: Im Firefox kommt im $_POST-Array weder Parameter noch Wert an.

Falls es hilft: das ganze ist eine Zusatzfrickelei im Umfeld des Adminbereichs einer XT-Commerce-Installation, das sollte aber eigentlich keinen Rolle spielen.

Hat jemand eine Idee, wo wir noch ansetzen könnten? Danke für jeden Tipp!

Gruß aus Köln-Ehrenfeld,

Elya

--