Daten der geklonten Formularfelder werden nicht übermittelt?

caballero82

Grünschnabel
Hallo zusammen,

ich habe ein ein Formular, das sich per javascript um Text- und Selectfelder erweitern lässt. Nun habe ich allerdings das Problem, dass lediglich die Daten der NICHT geklonten Reihen an den Server übermittelt werden. Die Klone werden einfach nicht mitgeschickt? Hoffe mir kann jmnd. helfen.

Anmerkung: habe mit dem Plugin "Live http headers" überprüft, welche Daten übermittelt werden.

Mein HTML-Code sieht folgendermaßen aus:

HTML:
<form action="index.php?id=23&profileTab=1&save=1" name="editform" method="post">
...
<div class="experiencebox">
	<div class="profilehead">header</div>
    <div class="h2profilehead">subheader</div>
		<div id="clonedTag">
			<table>
				<tr>
					<td>Name</td>
					<td>position</td>
					<td>www</td>
				</tr>
				<tr>
					<td>
						<input name="EP[tx_common_company][name][]" value="" size="30" type="text">
					</td>
					<td>
						<input name="EP[tx_common_company][position][]" value="" size="30" type="text">
					</td>
					<td>
						<input name="EP[tx_common_company][www][]" value="" size="30" type="text">
					</td>
				</tr>
			</table>
			<table>
				<tr>
					<td>start monat</td>
					<td>start jahr</td>
					<td>ende monat</td>
					<td>ende jahr</td>
				</tr>
				<tr>
					<td>
                                          <select name="EP[tx_common_company][start_year][]">
                                             <option value="1">1912</option>
                                         </select>
                                        </td>
					<td>
                                          <select name="EP[tx_common_company][end_year][]">
                                             <option value="1">1931</option>
                                         </select>
                                        </td>
				</tr>
			</table>
		</div>
                <input value="erweitern" onclick="clone_this(this,'clonedTag')" type="button">
		<a href="javascript: document.editform.submit()">
                    <img src="fileadmin/website/images/icons/ic_save.gif"> Save changes
                </a>
</div>
...
</form>

Der zugehörige javascript-code:
Code:
<script type="text/javascript">
function clone_this(button,objid){
    var clone_me = document.getElementById(objid).cloneNode(true);

    // Im Parent-DIV vor dem Kindknoten "button" einhängen
    button.parentNode.insertBefore(clone_me, button);
}

</script>
 
Zuletzt bearbeitet:
Wo ist denn das Formularelement?


habs editiert - danke für den Hinweis. Stells dir so vor, dass die "..." weitere div-container darstellen und die Inhalte in diesen Containern ebenfalls mitgespeichert werden.

Hast du sonst ne Idee, woran ich (außer an mir selber :confused:) scheitere?

Ergänzend möchte ich noch noch erläutern, wie sich der input-name EP[tx_common_company][www][] zusammensetzt:
- EP ist eine globale Variable
- tx_common_company gibt die Tabelle an, in der gespeichert werden soll
- www sagt um welches Tabellenfeld es sich handelt
 
Also ich kann das Problem nicht nachvollziehen. Bei mir funktioniert es wie erwartet/erdacht. Lass dir doch mal alle per POST-Methode übergebenen Werte ausgeben:
PHP:
var_dump($_POST);
 
Also ich kann das Problem nicht nachvollziehen. Bei mir funktioniert es wie erwartet/erdacht. Lass dir doch mal alle per POST-Methode übergebenen Werte ausgeben:
PHP:
var_dump($_POST);

habe deinen Rat befolgt, hier das Ergebnis:
PHP:
array(1) { ["EP"]=> array(2) { ["fe_users"]=> array(13) { ["tx_common_firstname"]=> string(5) "Vorname" ["tx_common_name_affix"]=> string(4) "test" ["tx_common_lastname"]=> string(5) "Nachname" ["tx_common_birthday"]=> string(1) "8" ["tx_common_birthmonth"]=> string(1) "2" ["tx_common_birthyear"]=> string(4) "1982" ["tx_common_status"]=> string(1) "1" ["company"]=> string(4) "test" ["tx_common_company_category"]=> string(1) "3" ["tx_common_jobtitle"]=> string(4) "test" ["tx_common_organizations"]=> string(433) "halli hallo my organzitation" ["tx_common_language"]=> string(2) "-1" ["tx_common_other_languages"]=> string(238) "German, English" } ["tx_common_company"]=> array(7) { ["name"]=> array(1) { [0]=> string(5) "test1" } ["position"]=> array(1) { [0]=> string(5) "test1" } ["www"]=> array(1) { [0]=> string(5) "test1" } ["start_month"]=> array(1) { [0]=> string(1) "1" } ["start_year"]=> array(1) { [0]=> string(4) "1982" } ["end_month"]=> array(1) { [0]=> string(1) "3" } ["end_year"]=> array(1) { [0]=> string(4) "1980" } } } }

verstehe nicht, wieso die Werte des ersten "clonedTag" mitgeschickt werden, die des zweiten allerdings nicht.

PS: der relevante Teil beginnt relativ weit hinten, ab "tx_common_company"
 
Zuletzt bearbeitet:
Installiere dir mal Firebug, damit kannst du dir den DOM in Echtzeit anschauen. Überprüfe mal, ob das geklonte Element überhaupt an der richtigen Stelle eingefügt wird.
 
habe firebug bereits installiert. Die Ausgabe ist sauber - das <div>-Tag "clonedTag" wird geklont und dahinter gesetzt.

Wenn ich im Editor von Firbug über die Klone gehe, markiert er die entsprechenden Bereiche auf der grafischen Oberfläche blau. Ich denke, dass sieht i.O. aus.

Das einzig was mir auffällt, ist dieser output:
<input type="text" _base_href="http://www.xy.com/" size="30" value="" name="EP[tx_common_company][name][]"/>

Woher kommt denn überhaupt "_base_href"? Wird automatisch generiert, aber weshalb - könnte das Probleme verursachen?
 
Hast du vielleicht irgendwelche Erweiterungen installiert, die den Quellcode dermaßen verändern? Und ist das Ganze vielleicht online zu betrachten?
 
Also ich kann das Problem immer noch nicht nachvollziehen. Bei mir wird alles wie erwartet. Vermutlich liegt es dann an deiner Firefox-Version. Hast du es schon mit anderen Browser oder Firefox-Versionen probiert?
 

Neue Beiträge

Zurück