我在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_decd,但没有得到任何结果。如何将其转换为可用的php数组?我使用ajax会更好吗?
$.post("http://www.samepage.com", {myJsonString: JSON.stringify(myJsonString)});
但当我尝试用PHP访问它时,我没有看到任何结果。
这告诉您还有另一个问题-PHP没有报告错误。你想打开error_reporting
。
在这种情况下,可能的原因是您的数据到达$_POST
数组,而$myJsonString
没有定义(自PHP 5.3.0以来,参数的自动定义一直不推荐使用,自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);
问题是需要去掉outout中的反斜杠:
$result = $_POST['json_string'];
$test = urldecode(str_replace("''","",$result));
$test2 = (json_decode($test,true));
print_r($test2);