Joh*_*nde 12 php arrays ajax jquery
我有一个包含大量表单字段(12 xn行)的表单.每行中的第一个字段(代表产品)是一个类似于此的复选框:
<input type="checkbox" class="ids" name="ids[]" value="1">
Run Code Online (Sandbox Code Playgroud)
每个复选框的值都是唯一的.
我想要做的是将检查值发送到PHP脚本以通过Ajax进行处理.我遇到的问题是正确地将ID提供给服务器.我尝试过几件事,包括:
$('.ids:checked').serialize();
Run Code Online (Sandbox Code Playgroud)
和
var ids = [];
$('.ids:checked').each(function(i, e) {
ids.push($(this).val());
});
$.ajax({
url: "stub",
type: "post",
dataType: "json",
data: {
'ids[]': 'ids[]='+ids.join('&ids[]=')
},
success: function(data) {
// stub
}
});
Run Code Online (Sandbox Code Playgroud)
但这些都导致在服务器上获取此信息:
ids[]=104&ids;[]=105
Run Code Online (Sandbox Code Playgroud)
我可以序列化整个表单并将其发送,但这可能会导致发送大量未使用的数据.
如何仅delete[]
将服务器的值发送给服务器?理想情况下,PHP将其识别为数组?
(我已经通过以逗号分隔的字符串发送ID来解决它,但是我想知道如何实现这一点,因为我花了足够的时间试图解决它).
Kri*_*ris 18
这对我来说很好
<input type="checkbox" class="ids" name="ids[]" value="2">
<input type="checkbox" class="ids" name="ids[]" value="3">
<input type="checkbox" class="ids" name="ids[]" value="4">
<input type="checkbox" class="ids" name="ids[]" value="5">
<input type="checkbox" class="ids" name="ids[]" value="6">
<div id="response"></div>
<button id="submit">Submit</button>
<script>
$('#submit').click(function() {
$.ajax({
url: "stub.php",
type: "post",
data: $('.ids:checked').serialize(),
success: function(data) {
$('#response').html(data);
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
然后在stub.php上
var_dump($_POST);
Run Code Online (Sandbox Code Playgroud)