2015-04-01 134 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