Php 通过ajax变量

Php 通过ajax变量,php,ajax,forms,jquery,Php,Ajax,Forms,Jquery,我一直在四处寻找,试图找出如何通过ajax传递页面上的2个变量。目前,我有一个页面,其中一个复选框dynamailcy会在点击时将其值保存到数据库中,但我需要它能够仅编辑具有认证id的行。我已经做了这么多,但我被卡住了。任何帮助都将不胜感激 $(function() { $("input[type='checkbox']").on('click', function(){ var chkName = $(this).attr('checked'); if($(t

我一直在四处寻找,试图找出如何通过ajax传递页面上的2个变量。目前,我有一个页面,其中一个复选框dynamailcy会在点击时将其值保存到数据库中,但我需要它能够仅编辑具有认证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>
$(函数()
{
$(“输入[type='checkbox']”)。在('click',function()上{
var chkName=$(this.attr('checked');
如果($(this).is(“:checked”)){
var checkVal=$(':checkbox[checked='+chkName+']')。attr('value');
}
否则{
var checkVal=$(“#frm输入:复选框”).attr(“id”);
}
var userid=$(':checkbox[checked='+chkName+']')。attr('name');
$.ajax({
键入:“获取”,
url:'request.php?uname='+checkVal'&id'=+userid,//这是我无法发送&id变量的地方,但我可以发送checkVal
成功:功能(数据){
如果(数据==1){//成功
警报('数据保存在数据库中!');
}
如果(数据==0){//Faliure
警报('数据未保存在数据库中!');
}
}
});
});
});
付费的
已修复
已返回

我想您正在寻找。从jquery序列化。 您可以检查api。它也有这样的例子。请浏览如何传递序列化数据的示例

稍后在服务器端,您可以使用
$\u POST['']
来获取值。
此外,我看到您试图从服务器获取值。您可以始终
echo json_encode()
发送到服务器端。

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

当前:

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

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

代码中的下一行不正确:

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

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

也考虑使用<代码> var ISCHECK=$(this).PROP(“检查”);

获取复选框的选中状态

第行
var chkName=$(this.attr('checked'),chkName的值将为“未定义”,而复选框未选中,因此行
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!');
            }
        }
    });
});

我不知道它将如何工作,因为是的,它将收集我将使用的复选框的名称,但我将如何获得用于切换付款状态的checkVal变量。您能否更具体地了解checkVal?对于如何使用name属性传递值,我感到非常困惑。你想达到什么目标?您可以在序列化之后为checkVal添加字符串,比如
警报($('#frm')。serialize()+'&id='+userid)
,但我认为您不应该使用name属性来存储值,除非您知道自己在做什么。下面是对代码的修改,它确实工作得更好,但我使用if语句的原因是,当我取消选中复选框时,它会更新数据库中的记录,以说明复选框的ID字段中的内容。我真的找不到任何东西做那?看起来,您已经使用复选框的html属性(id、名称、值)在UI中实现了业务逻辑。这会使您的场景复杂化,不建议这样做。在服务器端移动它;仅传递复选框的“选择”状态。e、 g.数据:{'Paid':isPaidChecked,'repairedchecked','Returned':isReturnedChecked}