我第一次尝试将 json 与 $.ajax() 一起使用,我将复选框的值和其他所需数据获取到 php 文件中,以便通过 $.ajax() 函数的数据部分的数组进行处理并发布到 mysqldb,但是会在我的 php 文件中得到一个空数组 []。当我尝试从浏览器中使用 javascript 调试工具时,我得到了报告
**Uncaught SyntaxError: Unexpected end of input jquery-1.9.0.min.js:1
st.extend.parseJSON jquery-1.9.0.min.js:1
(anonymous function) index.php?url=account/registration/:297
st.event.dispatch jquery-1.9.0.min.js:2
y.handle**
我生成的数组在控制台日志中看起来像这样
[checkbox1: "COM 101", semester: "1st Semester", mid: "7", checkbox2: "COM 112", checkbox3: "STA 111"…]
checkbox1: "COM 101"
checkbox2: "COM 112"
checkbox3: "STA 111"
checkbox4: "STA 112"
checkbox5: "MTH 111"
length: 0
mid: "7"
semester: "1st Semester"
在我的 php 处理文件中,我对 json 数据执行了 print_r,但结果得到了 Array[]
这是我的 javascript 代码块“myDataArray 是一个全局变量”
$('#mytable2').on('change',function(e){
var rel = e.target.getAttribute('rel');
console.log(e.target.value+ " "+ e.target.checked)
if(rel === globals.payment_target && e.target.checked===true){
myDataArray[e.target.getAttribute("name")]= e.target.value;
myDataArray["semester"] = $("#semester").val()
myDataArray["mid"] = $("#mid").val()
}
if(rel === globals.payment_target && e.target.checked ===false){
delete myDataArray[e.target.getAttribute("name")]
console.log(myDataArray)
}
});
$('#mytable2').on('click',function(e){
var rel = e.target.getAttribute('rel');
console.log(e.target.value+ " "+ e.target.getAttribute('name'))
if(rel === globals.payment_target && e.target.value =="Register"){
console.log(myDataArray)
var jsonstring = $.parseJSON(myDataArray);
var myglob =JSON.stringify(globals)
console.log(myglob)
$.ajax({url:'courseregistration.php', type:'POST',data:{data:jsonstring},success: function(result){
$('#putmehere').html("<h4 style='text-align:center'>"+result+"</h4>")
alert(result)
}
})
}
});
这就是 php 文件的样子
$data = json_decode($_POST['data']);
print_r($data);
我只是无法弄清楚问题是什么。有人可以告诉我我这样做的方式有什么问题或提出更好的方法吗