我有一个表,每行包含1个DB记录的字段
表行被动态添加和删除
我想使用ajax发送所有文本框数据到php文件
表格在下面
<table id="tblDmc" frame="box" rules="all" width="100%">
<tr>
<th>Subject</th><th>Total Marks</th><th>Obtained</th><th>Class Highest</th><th>Remarks</th><th> </th>
</tr>
<tr class="subRecord">
<td><input type="text" class="dmcTxt subject"></td>
<td><input type="number" class="dmcTxt total"></td>
<td><input type="number" class="dmcTxt obtained"></td>
<td><input type="number" class="dmcTxt highest"></td>
<td><input type="text" class="dmcTxt remarks"></td>
<td><a href="#" class="removeRow">x<a></td>
</tr>
</table>
Jquery Ajax代码
$("#btnSave").click(function(){
var data1 = [];
var stdRow = {"s_id":$("#drpClass").val(),"month":$("#drpMonth").val(),"percent":$("#percentage").val(),"grade":$("#grade").val(),"position":$("#position").val(),"curricular":$("#curricular").val()};
data1.push(stdRow);
$("#tblDmc .subRecord").each(function(){
if($(this).find(".subject").val()!="")
{
var rowData = {};
rowData["subject"] =$(this).find(".subject").val();
rowData["total"] =$(this).find(".total").val();
rowData["obtained"] =$(this).find(".obtained").val();
rowData["highest"] =$(this).find(".highest").val();
rowData["remarks"] =$(this).find(".remarks").val();
data1.push(rowData);
}
});
//$(this).after(JSON.stringify(data1));
$.ajax({
url:'savedmc.php',
type:'POST',
data: JSON.stringify(data1),
contentType: "application/json; charset=UTF-8",
success: function(e){
alert(e);
}
});
});
JSON.stringify(data1)返回以下内容
[
{"std_id":"6","month":"4","percent":"77","grade":"1","position":"33","curricular":"abc"},
{"subject":"Maths","total":"100","obtained":"99","highest":"100","remarks":"remarks"},
{"subject":"Physics","total":"100","obtained":"94","highest":"99","remarks":"emarks"}
]
savedmc.php中的代码是
<?php print_r($_POST); ?>
返回NULL array()
我的问题是如何通过ajax发送上面的json对象/数组到php文件,
或任何其他选择?
答案 0 :(得分:0)
使用此版本替换JS代码中的ajax调用:
$.ajax({
url:'savedmc.php',
type:'POST',
dataType: "json",
data: JSON.stringify(data1),
contentType: "application/json; charset=UTF-8",
success: function(e){
alert(e);
}
});