我有一个带有很多表单字段(12 xn行)的表单。每行中的第一个字段(代表产品)是一个类似于以下内容的复选框:
<input type="checkbox" class="ids" name="ids[]" value="1">
每个复选框的值都是唯一的。
我正在尝试将检查后的值发送到PHP脚本以通过Ajax进行处理。我遇到的问题是将ID正确获取到服务器。我尝试使用以下几种方法:
$('.ids:checked').serialize();
和
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 } });
但是这些都会导致在服务器上获取此信息:
ids[]=104&ids;[]=105
我可以序列化整个表单并将其发送过来,但是这可能导致发送的许多数据将不被使用。
如何仅将的值发送delete[]到服务器?理想情况下,PHP会将其识别为数组?
delete[]
(我通过以逗号分隔的字符串形式发送ID来解决此问题,但由于我花了足够的时间来弄清楚它,因此我想知道如何完成此操作)。
这对我来说很好
<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>
然后在stub.php上
var_dump($_POST);