I have a form generated dynamically with the method .append() of jQuery.
I can add any number of new input, textbox, cmbbox, etc…
But the problem is that when I do the sumbit of the form, the PHP target does not receive the new input added, but just the vars connected to the input already in the form before the append().
Any ideas?
The javascript:
$("#button").live('click',function add(){
$("#list").append(
'<li style="height:20px;">'
+'<input type="text" class="text" id="prova" name="prova[]" value="prova">'+
'</li>'
);
});
The Html:
<input type="submit" id="button" value="Add input">
<form name = "form" id="form" action="post.php" method="POST">
<ul style="width:670px;padding:0px 0px 30px 0px" id="list">
</ul>
<input type="submit" id="submit" value="Submit">
</form>
The PHP:
<?php
print_r($_POST);
?>
Problem 1:
Your
#buttonshould not be of typesubmit, since you just want to use it to add to the form and not submit the form. So you should have:Problem 2:
You are overwriting your variables. The
nameis the variable sent with the form, so eachinputaddition must have a new name, or the variable must be an array.Additionally, you can’t have more than one element with the same
id.The simplest way to solve this is to make
provaan array by using the formprova[]:jsFiddle example