Php 通过ajax变量
我一直在四处寻找,试图找出如何通过ajax传递页面上的2个变量。目前,我有一个页面,其中一个复选框dynamailcy会在点击时将其值保存到数据库中,但我需要它能够仅编辑具有认证id的行。我已经做了这么多,但我被卡住了。任何帮助都将不胜感激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
$(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}