我从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):什么都不打印
答案 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并像数组一样使用它。