我有一个表格,我使用j-query
动态添加行
我想从我的php
中的每个字段中获取数据,并在我按下提交时使用它做任何事情,或者我们可以使用j-query
在表格周围循环以获取所有值并将其放入数组我不知道如何去做它可以请一些人帮助我。这就是我到目前为止所拥有的
的jquery.js
$(document).ready(function(){
$(".add-row").click(function(){
var name = $("#name").val();
var email = $("#email").val();
var markup = "<tr><td><input type='checkbox' name='record'></td><td>" + name + "</td><td>" + email + "</td></tr>";
$("table tbody").append(markup);
});
// Find and remove selected table rows
$(".delete-row").click(function(){
$("table tbody").find('input[name="record"]').each(function(){
if($(this).is(":checked")){
$(this).parents("tr").remove();
}
});
});
});
的index.php
<form>
<input type="text" id="name" placeholder="Name">
<input type="text" id="email" placeholder="Email Address">
<input type="button" class="add-row" value="Add Row">
</form>
<table>
<thead>
<tr>
<th>Select</th>
<th>Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" name="record"></td>
<td>Peter Parker</td>
<td>peterparker@mail.com</td>
</tr>
</tbody>
</table>
<button type="button" class="delete-row">Delete Row</button>
<button type="button" class="Submit">Submit</button>
这是一个Fiddle
答案 0 :(得分:3)
您可以在创建新行时向表单添加隐藏的输入:
$(".add-row").click(function () {
var name = $("#name").val();
var email = $("#email").val();
var markup = "<tr><td><input type='checkbox' name='record'></td><td>" + name + "</td><td>" + email + "</td></tr>";
markup += "<input type='hidden' name='name' value='" + name + "'>";
markup += "<input type='hidden' name='email' value='" + email + "'>";
$("table tbody").append(markup);
});
然后在PHP方面,您将在$_POST
数组中像这样接收它们:
$_POST['name'], $_POST['email]
由于您希望能够一次发布多个,因此可以将它们命名为数组,例如称为customer
,方法是将它们命名为:
markup += "<input type='hidden' name='customer[0][name]' value='" + name + "'>";
markup += "<input type='hidden' name='customer[0][email]' value='" + email + "'>";
然后,$_POST['customer']
将是一个数组数组,每个数组都有两个键name
和email
总之它看起来像:
var x = 0;
$(".add-row").click(function () {
var name = $("#name").val();
var email = $("#email").val();
var markup = "<tr><td><input type='checkbox' name='record'></td><td>" + name + "</td><td>" + email + "</td></tr>";
markup += "<input type='hidden' name='customer[" + x + "][name]' value='" + name + "'>";
markup += "<input type='hidden' name='customer[" + x + "][email]' value='" + email + "'>";
x++;
$("table tbody").append(markup);
});