【发布时间】:2018-11-03 05:15:55
【问题描述】:
我有以下 PHP while 循环,它将数据显示为复选框。复选框可以是多个,也可以是一个。
<?php
$supplier = new Admin;
$supplier->rowQuery("SELECT * FROM supplier");
echo '<form id="formId">';
while ( $data = $supplier->result->fetch_assoc()) {
$sid = (int) $data['sid'];
$supplierName = output($data['supplierName']);
echo '<label class="checkbox-inline">';
echo "<input type='checkbox' name='sid[]' data-sid='$sid' value='$sid' class='supplierClass'> $supplierName";
echo '</label>';
}
echo '<input type="hidden" name="submit" value="supplier" class="clickBtn">';
echo '</form>';
?>
现在我想在至少一个复选框或多个复选框被选中时调用 Ajax。所以要做到这一点,我有以下 Javascrpt:
$('.supplierClass').click(function() {
var sid = $(this).data('sid');
if(this.checked){
// $("input[type=submit]").trigger(".clickBtn");
$('.clickBtn').trigger();
$('#formId').submit(function() {
$.ajax({
url : 'process/get-vehicle.php',
type : 'POST',
dataType : 'html',
data : {
sid : sid,
},
beforeSend : function () {
$('.allVehicle').html('Please wait...');
},
success : function ( result ) {
$('.allVehicle').html(result);
}
});
});
}
});
但它不叫 Ajax :(
总体目标
您可以看到我已将复选框名称设置为arraysid[]。因为我需要将所有复选框选中的数据作为 PHP 文件中的数组获取。
所以如何在检查一个或多个复选框时调用ajax? 请注意:在 PHP 文件中,我想获取所有复选框或一个复选框值。
我的想法:
我认为应该有一个隐藏的提交按钮。当我点击任何复选框时,它应该按下 jQuery 的隐藏按钮来调用 Ajax。
【问题讨论】:
-
clickBtn是hidden类型吗?另外,我不建议在复选框的单击处理程序中绑定表单提交事件 -
您不需要任何提交按钮,只需在选中复选框时触发AJAX请求并将序列化表单作为数据提交即可。
-
@hungrykoala 让我试试。
-
@hungrykoala 你的意思是这个序列化:
data : $('#formId').serialize(), -
是的,这将获取该表单的所有可用数据
标签: javascript php jquery ajax checkbox