PHP解析html post数组问题

时间:2017-04-02 20:44:57

标签: php arrays json post

我从html解析post数组时遇到问题。它可以在一台服务器上运行,但不能在另一台服务器上运行(公共服务器)。 我用一个数组的用户数据(在javascript中制作)来使用其他帖子并填充数据库。使用var data []从前端编写的代码; JSON.stringify(数据);

        $predmeti = json_decode($_POST['predmeti']);
        foreach($predmeti as $predmet)
        {
            $podaci = array(
                'id_pohadja' => $_POST['pohadja'],
                'id_predmet' => $predmet,
                'prvo_polugodiste' => $_POST[$predmet . '-prvo_polugodiste'],
                'prvo_zakljucna' => $_POST[$predmet . '-prvo_zakljucna'],
                'drugo_polugodiste' => $_POST[$predmet . '-drugo_polugodiste'],
                'drugo_zakljucna' => $_POST[$predmet . '-drugo_zakljucna']
            );

            try {
                $database->snimiOcene($podaci);
            } catch(Exception $ex) {
                die($ex->getMessage());
            }
        }

已收回错误:

PHP Warning:  Invalid argument supplied for foreach()

HTML:

                        <input type="hidden" name="predmeti" id="frmOcenePredmeti" />

JavaScript的:

var predmeti = [];
                    $.each(data, function(key, value) {
                        $("#tblOcene tbody").append("<tr>");
                        $("#tblOcene tbody").append("<td>" + key + "</td>");
                        $("#tblOcene tbody").append("<td>" +
                            "<input type=\"text\" class=\"form-control\"" +
                            "   name=\"" + value["id_predmet"] + "-prvo_polugodiste" + "\"" +
                            "   value=\"" + value["prvo_polugodiste"] + "\"" +
                            "   />" +
                        "</td>");
                        $("#tblOcene tbody").append("<td>" +
                            "<input type=\"text\" class=\"form-control\"" +
                            "   name=\"" + value["id_predmet"] + "-prvo_zakljucna" + "\"" +
                            "   value=\"" + value["prvo_zakljucna"] + "\"" +
                            "   size=\"2\" />" +
                        "</td>");
                        $("#tblOcene tbody").append("<td>" +
                            "<input type=\"text\" class=\"form-control\"" +
                            "   name=\"" + value["id_predmet"] + "-drugo_polugodiste" + "\"" +
                            "   value=\"" + value["drugo_polugodiste"] + "\"" +
                            "   />" +
                        "</td>");
                        $("#tblOcene tbody").append("<td>" +
                            "<input type=\"text\" class=\"form-control\"" +
                            "   name=\"" + value["id_predmet"] + "-drugo_zakljucna" + "\"" +
                            "   value=\"" + value["drugo_zakljucna"] + "\"" +
                            "   size=\"2\" />" +
                        "</td>");
                        $("#tblOcene tbody").append("</tr>");
                        predmeti.push(value['id_predmet']);
                    });
                    $("#frmOcenePredmeti").val(JSON.stringify(predmeti));

工作服务器print_r($ predmeti):

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 7 [5] => 11 [6] => 19 [7] => 20 [8] => 21 [9] => 22 [10] => 23 [11] => 13 )

不工作的服务器print_r($ predmeti):什么都不打印

2 个答案:

答案 0 :(得分:0)

<强>使用Javascript:

 <input type="checkbox" id="stat1" ng-true-value="'black'" checked="true" />

试试此服务器端代码:

var predmeti = [];
$.each(data, function(key, value) {
    var row = "";
    row += "<tr>";
    row += "<td>" + key + "</td>";
    row += "<td>" + "<input type=\"text\" class=\"form-control\"" +
        "   name=\"" + value["id_predmet"] + "-prvo_polugodiste" + "\"" +
        "   value=\"" + value["prvo_polugodiste"] + "\"" +
        "   />" + "</td>";

    row += "<td>" + "<input type=\"text\" class=\"form-control\"" +
        "   name=\"" + value["id_predmet"] + "-prvo_zakljucna" + "\"" +
        "   value=\"" + value["prvo_zakljucna"] + "\"" +
        "   size=\"2\" />" + "</td>";

    row += "<td>" + "<input type=\"text\" class=\"form-control\"" +
        "   name=\"" + value["id_predmet"] + "-drugo_polugodiste" + "\"" +
        "   value=\"" + value["drugo_polugodiste"] + "\"" +
        "   />" + "</td>";

    row += "<td>" + "<input type=\"text\" class=\"form-control\"" +
        "   name=\"" + value["id_predmet"] + "-drugo_zakljucna" + "\"" +
        "   value=\"" + value["drugo_zakljucna"] + "\"" +
        "   size=\"2\" />" + "</td>";

    row += "</tr>";

    $("#tblOcene tbody").append(row);
    predmeti.push(value['id_predmet']);
});
$("#frmOcenePredmeti").val(JSON.stringify(predmeti));

答案 1 :(得分:0)

我从post [\“1 \”,\“2 \”,\“3 \”]中修剪了收​​到的字符串并删除了所有\和“。然后解码JSON并像数组一样使用它。