我在jQuery中有一个数组,我试图通过Post:
转换为PHP数组$.post("http://www.samepage.com", {final_slip: JSON.stringify(final_slip)});
当我将这个动态创建的数组“final_slip”传递给它时:
[final_bet_game { final_user_id="1", final_game_id="1", final_game_type="spread_2",final_price="10", final_odds="1.8"}, final_bet_game { final_user_id="2", final_game_id="3", final_game_type="spread_2",final_price="1", final_odds="2.8"}, final_bet_game { final_user_id="3", final_game_id="14", final_game_type="spread_32",final_price="140", final_odds="1.8"}, final_bet_game { final_user_id="4", final_game_id="1", final_game_type="spread_2",final_price="10", final_odds="2.8"}, ]
我输出这个PHP:
$data = $_POST['final_slip'];
print_r ( $data);
[{\"final_user_id\":\"1\",\"final_game_id\":\"1\",\"final_game_type\":\"spread_2\",\"final_price\":\"211\",\"final_odds\":\"1.8\"},{\"final_user_id\":\"1\",\"final_game_id\":\"2\",\"final_game_type\":\"spread_2\",\"final_price\":\"212\",\"final_odds\":\"1.8\"},{\"final_user_id\":\"1\",\"final_game_id\":\"parlay\",\"final_game_type\":\"\",\"final_price\":\"021\",\"final_odds\":\"\"}]
我尝试使用json_decod,但我没有得到任何结果。我怎样才能将它变成可用的php数组?我会更好地使用ajax吗?
答案 0 :(得分:3)
$.post("http://www.samepage.com", {myJsonString: JSON.stringify(myJsonString)});
但是当我尝试在PHP中访问它时,我没有看到任何结果。
并且 告诉您还有其他问题 - PHP没有报告错误。你想要turn error_reporting
on。
在这种情况下,可能的原因是您的数据已到达$_POST
数组,并且自PHP 5.3.0起未定义$myJsonString
(automatic definition of parameters has been deprecated,并且自此以后不再可用PHP 5.4.0)。
你应该做
if (array_key_exists('myJsonString', $_POST)) {
$myJsonString = $_POST['myJsonString'];
} else {
die("myJsonString not in _POST");
}
或直接尝试
$result = json_decode($_POST['myJsonString'], true);
答案 1 :(得分:0)
问题是需要剥离出局中的反斜杠:
$result = $_POST['json_string'];
$test = urldecode(str_replace("\\","",$result));
$test2 = (json_decode($test,true));
print_r($test2);