2010-10-22 45 views
1

我需要(最近)從jquery創建ajax調用後從服務器獲取數組。我知道我可以使用JSON來做到這一點。但我不知道如何使用JQuery實現它(即時消息與JSON新)。我嘗試在互聯網上搜索一些例子,但我沒有找到它。JQuery + Json - 第一步以示例

這是代碼:

// js-jquery function 
function changeSponsor() { 
    $.ajax({ 
     type: 'POST', 
     cache: false, 
     url: './auth/ajax.php', 
     data: 'id=changespon', 
     success: function(msg) { 
      // here i need to manage the JSON object i think 
     } 
    }); 
    return false; 
} 

// php-server function 
if((isset($_POST['id'])) && ($_POST['id']=="changespon")) { 
    $linkspon[0]="my "; 
    $linkspon[1]="name "; 
    $linkspon[2]="is "; 
    $linkspon[3]="marco!"; 

    echo $linkspon; 
} 

其實,我需要得到Ajax調用後,數組$ linkspon和管理。怎麼辦?我希望這個問題很清楚。謝謝

編輯

好的。這現在是我的jQuery功能。我添加$ .getJSON功能,但我認爲在一個錯誤的地方:)

function changeSponsor() { 
    $.ajax({ 
     type: 'POST', 
     cache: false, 
     url: './auth/ajax.php', 
     data: 'id=changespon', 
     dataType: 'json', 
     success: function(data) { 
      $.getJSON(url, function(data) { alert(data[0]) }); 
     }  
    }); 

    return false; 
} 

回答

5

你需要做兩件事。

  1. 您需要將您的數組轉換爲JSON,然後再以PHP輸出。這可以很容易地使用json_encode完成,假設你有最新版本的PHP(5.2+)。 JSON最好使用命名鍵/值對,而不是數字索引。
  2. 在您的jQuery .ajax調用中,將dataType設置爲'json',以便知道期望的數據類型。

    // JS/jQuery 
    function changeSponsor() { 
        $.ajax({ 
         type: 'POST', 
         cache: false, 
         url: './auth/ajax.php', 
         data: 'id=changespon', 
         dataType: 'json', 
         success: function(data) { 
          console.log(data.key); // Outputs "value" 
          console.log(data.key2); // Outputs "value2" 
         } 
        }); 
        return false; 
    } 
    
    
    // PHP 
    if((isset($_POST['id'])) && ($_POST['id']=="changespon")) { 
        $linkspon["key"]= "value"; 
        $linkspon["key2"]= "value2"; 
        echo json_encode($linkspon); 
    } 
    
+0

是啊...這個岩石!我只是發送一個數組0,1,... n索引,我用jquery用data [0],data [1],... data [n]來管理它!謝啦 :) – markzzz 2010-10-23 14:42:31

3

1)PHP:您需要在陣列上使用json_encode。

例如

// php-server function 
if((isset($_POST['id'])) && ($_POST['id']=="changespon")) { 
    $linkspon[0]="my "; 
    $linkspon[1]="name "; 
    $linkspon[2]="is "; 
    $linkspon[3]="marco!"; 

    echo json_encode($linkspon); 
} 

2)JQUERY:

use $.getJSON(url, function(data) { whatever.... }); 

的數據將被傳遞迴JSON格式。在你的情況下,你可以訪問「我的」數據[0];

+0

香港專業教育學院嘗試使用此代碼,但是我在錯誤的地方使用它認爲,即時通訊。看看上面的代碼;)感謝您的幫助 – markzzz 2010-10-22 22:07:45