以下脚本会将$_POST['id']=[1,2,3]
发送到服务器。
相反,我希望将$_POST['id']=[[1,'extra1'],[2,'extra2'],[3,'extra3']]
发送到服务器,或将$_POST['id']=[1,2,3]
和$_POST['extra']=['extra1','extra2','extra3']
发送到服务器。
我可以通过迭代表来实现,但HTML是PHP生成的,而我想修改HTML以尽可能简单地做到这一点。
这是如何最好地完成的?
https://jsfiddle.net/5a8cLt08/2/
$('#go').click(function() {
var data = $('#mytable tbody input.cb:checked').serializeArray();
console.log('data', data);
$.post('ajax.php', data, function(json) {
console.log('json', json);
}, 'json');
});
<table id='mytable'>
<tbody>
<tr>
<td>
<input class="cb" type="checkbox" value="1" secondValue="extra1" name="id[]">
</td>
<td>bla1</td>
<td>
<input class="cb" type="checkbox" value="2" secondValue="extra2" name="id[]">
</td>
<td>bla2</td>
<td>
<input class="cb" type="checkbox" value="3" secondValue="extra3" name="id[]">
</td>
<td>bla3</td>
</tr>
</tbody>
</table>
<button id="go">Go</button>
答案 0 :(得分:1)
<input class="cb" type="checkbox" value="1" name="id[]">
<input type="hidden" name="extras[1]" value="extra1" />
这将使用关联数组id =&gt;填充$ _POST ['extras']。额外。 这当然是假设您通过PHP循环填充它并且可以轻松实现上述目的。
如果不是,您可能需要使用JavaScript从输入中提取所需的属性。
<强>更新强>
您还可以将JSON值传递给此。理想情况下,您希望对要作为值传递的数据执行$valueData = json_encode
。
输入看起来像:
<input class="cb" type="checkbox" value='{ "id": 1, "extras": "extra1" }' name="id[]">
你的$ _POST将是这样的:
$_POST["id"] = [
'{ id: 1, extras: "extra1" }', ...
]
您可以通过以下方式获取所需数据:
$data = json_decode($_POST["id"][0]);
$id = $data->id; $extra = $data->extras;