使用Php,Ajax,JSON在DB中保存动态记录

时间:2014-04-17 20:41:16

标签: php mysql ajax json

我有一个表,每行包含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>&nbsp;&nbsp;&nbsp;</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文件,
或任何其他选择?

1 个答案:

答案 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);
        }
    });