通过ajax调用发送复选框值

时间:2019-06-24 07:16:44

标签: jquery ajax

我需要将页面中复选框的值发送到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'> 有什么建议吗?

2 个答案:

答案 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');
    }

});