mastermueller
New member
Hi,
Ich bin Javascript Anfänger und habe ein Problem damit, Knoten zu klonen, weil sämtliche ID's mitgeklont werden. Hab schon viel gegooglet und Aussagen gefunden, was man wohl tun könnte - nur leider nie mit Codebeispiel, dann bringt das wenig zum Nachvollziehen... Ich mach mal n Beispiel, was ich machen will:
Das Klonen der Elemente funktioniert hier schon. Ich weiß auch, dass ich mittels
nicht angeklickte Checkboxen abfragen kann. Problem ist jetzt, dass, sobald ich zB. <input name="param[1]"... in die Tabelle schreibe, nicht mehr klonen kann. Wenn ich allerdings keinen Namen angebe, haben das versteckte Feld und die Checkbox verschiedene Namen, was auch nicht sein soll. Kann man das irgendwie mit Javascript lösen?
Also nochmal in Kurz, was ich will: Checkboxen klonen, die auch beim nicht-anklicken mit dem Trick oben übertragen werden können und am Ende sämtliche Werte der Checkboxen in einem Array haben (und höchstens konstant viele mehr, in diesem Fall hier zB wohl 2 mehr).
Vielen Dank im Voraus für Vorschläge
Ich bin Javascript Anfänger und habe ein Problem damit, Knoten zu klonen, weil sämtliche ID's mitgeklont werden. Hab schon viel gegooglet und Aussagen gefunden, was man wohl tun könnte - nur leider nie mit Codebeispiel, dann bringt das wenig zum Nachvollziehen... Ich mach mal n Beispiel, was ich machen will:
HTML:
<html>
<head>
<title>test</title>
<script type="text/javascript">
<!--
function clone(button, objid)
{
tmpvalue = document.test.elements['param[]'][1].value;
document.test.elements['param[]'][1].value = '';
var clone_me = document.getElementById(objid).firstChild.cloneNode(true);
button.parentNode.insertBefore(clone_me, button);
document.test.elements['param[]'][1].value = tmpvalue;
}
function remove_this(objLink)
{
objLink.parentNode.parentNode.parentNode.parentNode.parentNode.removeChild(objLink.parentNode.parentNode.parentNode.parentNode);
}
//-->
</script>
</head>
<body>
<form name="test" method="post" action="test2.php">
<input name="param[0]" value="0" type="hidden">
<div id="hidden" style="visibility:hidden; display:none">
<div id="table"><table>
<tr><td>
<input name="param[]" type='hidden' value="0">
Parameter: <input name="param[]" type="checkbox" value="1">
</td>
<td>
<span style="margin-left:2em;"></span><input value="-" onclick="javascript:remove_this(this)" type="button">
</td>
</tr>
</table></div>
</div>
<div>
<input style="margin-top:2em;" value="+" onclick="javascript:clone(this, 'table');" type="button">
<button type="submit" name="sent">Submit</button>
</div>
</form>
<?php
if(isset($_POST['sent'])){
for ($i = 0; $i < count($_POST['param']); $i++) {
print $i . ": " . $_POST['param'][$i] . "<br>";
}
}
?>
</body>
</html>
Das Klonen der Elemente funktioniert hier schon. Ich weiß auch, dass ich mittels
Code:
<input name="test[0]" type="checkbox" value='1'><input type='hidden' value='0' name='test[0]'>
Also nochmal in Kurz, was ich will: Checkboxen klonen, die auch beim nicht-anklicken mit dem Trick oben übertragen werden können und am Ende sämtliche Werte der Checkboxen in einem Array haben (und höchstens konstant viele mehr, in diesem Fall hier zB wohl 2 mehr).
Vielen Dank im Voraus für Vorschläge
Zuletzt bearbeitet von einem Moderator: