0

我一直在环顾四周,试图弄清楚如何通过 ajax 在页面上传递 2 个变量,此时我有一个页面,其中一个复选框 dynamailcy 在单击它时将其值保存到数据库中,但我需要它能够仅在此刻编辑具有 certian id 的行,我已经走到了这一步,但我被卡住了。任何帮助将不胜感激

$(function()
    {

    $("input[type='checkbox']").on('click', function(){
    var chkName = $(this).attr('checked');
    if($(this).is(":checked")) {
    var checkVal = $(':checkbox[checked='+chkName+']').attr('value');
    }
    else{
    var checkVal =$("#frm input:checkbox").attr("id");  
    }
    var userid = $(':checkbox[checked='+chkName+']').attr('name');
            $.ajax({
            type: "GET",
            url: 'request.php?uname=' + checkVal '&id'= + userid ,// this is where i cant send the &id varible across but i can send the checkVal 

            success: function(data) {

        if(data == 1){//Succues 
             alert('Data was saved in db!');
          }
        if(data == 0){//Faliure 
             alert('Data was NOT saved in db!');
          }
            }
    });
  });

  });

</script>
</head><body>
    <div class="content">
    <table border="0.02px" class="mytable">
    <thead>
    <th><strong>Paid</strong></th>
    <th><strong>Repaired</strong></th>
    <th><strong>Returned</strong></th>
    </thead>
    <tr>
            <form id="frm" name="frm">
                <td><input type="checkbox"  value="Paid"          id="Waiting on Payment"  name="29" /></td>
                <td><input type="checkbox"  value="Repaired"      id="Waiting on Repairs"  name="uname" /></td>
                <td><input type="checkbox"  value="With Student"  id="Awaiting Pickup"     name="uname" /></td>
            </form>
    </tr>
    </table>    
    </div>
4

3 回答 3

1

您的代码中的以下行不正确:

url: 'request.php?uname=' + checkVal '&id'= + userid ,

应该:

url: 'request.php?uname=' + checkVal +'&id=' + userid,

还可以考虑使用var isChecked = $(this).prop('checked');来获取复选框的选中状态。

在 linevar chkName = $(this).attr('checked');中,chkName的值 将是“未定义”,而复选框未选中,因此 line
var userid = $(':checkbox[checked='+chkName+']').attr('name');

如果我正确理解你的代码,那么你可以试试这个:

$("input[type='checkbox']").on('click', function() {

    var $this = $(this);
    var isChecked = $this.prop('checked');

    var checkVal = isChecked ? $this.attr('value') : $this.attr("id");

    var userid = $this.attr('name');

    $.ajax({
        type: "GET",

        //url: 'request.php?uname=' + checkVal '&id' = +userid,
        url: 'request.php?uname=' + checkVal +'&id=' + userid,

        // this is where i cant send the &id varible across but i can send the checkVal
        success: function(data) {

            if (data == 1) { //Succues
                alert('Data was saved in db!');
            }
            if (data == 0) { //Faliure
                alert('Data was NOT saved in db!');
            }
        }
    });
});
于 2012-05-04T03:09:57.977 回答
1

当前,您尝试发送的 url 变量存在错误

当前的:

url: 'request.php?uname=' + checkVal '&id'= + userid,

更正:

url: 'request.php?uname=' + checkVal + '&id=' + userid,
于 2012-05-04T02:55:45.517 回答
0

我认为您正在寻找来自 jquery 的 .serialize 。你可以在这里查看 api 。它也有例子。请通过示例如何传递序列化数据。

稍后在服务器端,您可能必须$_POST['<your input name here>']获取该值。另外,我看到你试图从服务器取回价值。您可以随时echo json_encode(<your data object here>)发送到服务器端。

于 2012-05-04T02:44:33.180 回答