$.ajax() で初めて json を使用しようとしましたが、$.ajax() 関数のデータ セクションの配列を介して処理し、mysqldb に投稿するために、チェックボックスの値とその他の必要なデータを php ファイルに取得しましたが、私のphpファイルで空の配列[]を取得します。ブラウザから JavaScript デバッグ ツールを使用しようとすると、reprot が表示されます
**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);
何が問題なのかわかりません。誰かが私がやっている方法のどこが悪いのか教えてもらえますか、またはより良い方法を提案してください