2015-04-01 109 views
2

我想通过AJAX $ .post发送关联数组到php。这里是我的代码:AJAX jQuery json发送数组到php

var request = { 
     action: "add", 
     requestor: req_id, 
     ... 
    } 

    var reqDetails = $("#request_details").val(); 

    switch(reqDetails){ 
     case 1: 
      request[note] = $("#note").val(); 
      break; 

     ... 

    } 

    if(oldRequest()){ 
     request[previousID] = $("old_id").val(); 
    } 

    $('#req_button').toggleClass('active'); 
    $.post("scripts/add_request.php", { 
     request_arr: JSON.stringify(request) 
     }, function(data){ 
      console.log(data); 
      $('#req_button').toggleClass('active'); 
    }, 'json'); 

而且我只是想在我的PHP脚本读取接收到的数据:

echo json_decode($_POST["request_arr"]); 

但它不工作。我是js的新手,我无法弄清楚我做错了什么。

+0

'data:JSON.stringify(request)' – 2015-04-01 12:56:36

+1

未定义变量'note'和'previousID'可能应该是字符串''note''和''previousID'' – James 2015-04-01 12:59:05

+0

感谢您指出@James。我已经更改了代码,但我仍然遇到同样的问题。我甚至尝试过Deeban的回答,但它不适合我。 – Zaxter 2015-04-01 16:49:06

回答

3

检查以下链接供你参考

Sending an array to php from JavaScript/jQuery

步骤1

$.ajax({ 
    type: "POST", 
    url: "parse_array.php", 
    data:{ array : JSON.stringify(array) }, 
    dataType: "json", 
    success: function(data) { 
     alert(data.reply); 
    } 
}); 

步骤2

你的PHP文件看起来像这样:

<?php 



    $array = json_decode($_POST['array']); 
    print_r($array); //for debugging purposes only 

    $response = array(); 
    if(isset($array[$blah])) 
     $response['reply']="Success"; 
    else 
     $response['reply']="Failure"; 

    echo json_encode($response); 

步骤3

成功函数

success: function(data) { 
     console.log(data.reply); 
     alert(data.reply); 
    } 
+0

我试过这个,但我得到“POST http://server/add_request.php 500(内部服务器错误)”。 它在行“$ array = json_decode($ _ POST ['array']);” – Zaxter 2015-04-01 16:47:04

+0

在回复页面检查语法错误 – 2015-04-02 04:44:26

0

您已经使用“JSON”作为数据类型,所以你不应适用于你的数据“字符串化”操作。

而不是request_arr: JSON.stringify(request),你可以直接尝试request_arr: request吗?

+0

我试过了,但仍无法正常工作。 – Zaxter 2015-04-01 13:00:07

+0

你能用“print_r($ _ POST)”编辑你的PHP代码吗?“并分享结果? – 2015-04-01 13:26:40