将Jquery对象数组传递给php数组

时间:2015-12-09 18:36:28

标签: javascript php jquery arrays object

我在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吗?

2 个答案:

答案 0 :(得分:3)

$.post("http://www.samepage.com", {myJsonString: JSON.stringify(myJsonString)});
     

但是当我尝试在PHP中访问它时,我没有看到任何结果。

并且 告诉您还有其他问题 - PHP没有报告错误。你想要turn error_reporting on

在这种情况下,可能的原因是您的数据已到达$_POST数组,并且自PHP 5.3.0起未定义$myJsonStringautomatic 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);