我需要将页面中复选框的值发送到php页面,该页面将处理此数据并在名为<div>
的结果中返回响应。每当复选框被选中或未选中时,它都必须得到响应,这样页面中所有复选框的ajax调用都应该“处于活动状态”。
我已经尝试了在SO上找到的所有示例,但是没有成功,因此我在做的事情一定有问题,但是我找不到。
这是复选框之一(所有复选框都相似)
echo "<input type='checkbox' id='model' class='model' value='" . $row["model"] . "'>" . $row["model"] . "<br>";
以下是我尝试过的jQuery
$("checkbox").click(function() {
if(this.checked){
$.ajax({
type: "POST",
url: 'pfinder.php',
data: $(this).attr('value'),
success: function(data) {
$("#result").load(result);
},
});
}
};
我还尝试仅使用单个复选框的ID进行测试,但未成功
$("#model").click(function() {
if(this.checked){
$.ajax({
type: "POST",
url: 'pfinder.php',
data: $(this).attr('value'),
success: function(data) {
$("#result").load(result);
},
});
}
};
以下是处理数据的pfinder.php
$model = $_POST["model"];
echo $model;
非常基本,但是到目前为止,没有数据显示
<div id='result'>
有什么建议吗?
答案 0 :(得分:0)
尝试使用this.checked
代替$(this).prop("checked")
。
并将$(this).attr('value')
更改为$(this).val()
$(".model").click(function() {
if($(this).prop("checked")){
$.ajax({
type: "POST",
url: 'pfinder.php',
data: $(this).val(),
success: function(data) {
$("#result").load(result);
},
});
}
};
答案 1 :(得分:0)
我认为您想发送checkbox的值,如果选中了checkbox,并且如果未选中checkbox,则想发送0。所以这是对您可能有用的代码
$(document).on("change", ".model", function () {
let c = this.checked ? this.value : '0'; // $(this).val()
if(c){
//check if it alerts when check box is checked
alert('checkbox is checked');
// perform your ajax here
$.ajax({
type: "POST",
url: 'pfinder.php',
data: $(this).val(),
success: function(data) {
//check if ajax is completed of no
alert('ajax completed');
$("#result").load(result);
},
});
}else{
//check if it alerts when check box is unchecked
alert('checkbox is NOT checked');
}
});