2012-05-11 77 views
0

我一直在使用ajax一會兒,我想了解更多關於檢索數據的信息。我只知道如何通過使用callbacks來獲得輸出。Ajax發送和檢索

當我使用回調函數並且我想要單個值時,我使用split()explode(),這樣我就可以獲得單獨的值。有沒有比這更好的方法?如果我繼續使用它,我認爲如果輸入與patternsplit/explode具有相同的字符,將會變得雜亂。

我想知道如何通過變量單獨檢索數據,而不是通過echo或HTML輸出。

問你是否不明白我的問題。

謝謝。

回答

3

您可以將PHP頁面的輸出返回爲jSON。你可以通過each方法迭代json結果並獲取項目。這比做split

樣本

$.getJSON("yourphppage.php", function(data){ 
    $.each(data.ResultSet.Results,function(i,item){ 
     console.log(data.ResultSet.Results[i].Name); 
     console.log(data.ResultSet.Results[i].Age); 
    });  
}); 

假設你從你的PHP頁面返回JSON結果如下面更清潔的方式

{ 
    "ResultSet": {   
     "ErrorMessage": "No error", 
     "Results": [ 
      { 
       "Name": "John", 
       "Age": "22" 
      }, 
      { 
       "Name": "John", 
       "Age": "22" 
      } 
     ] 
    } 
} 

編輯:當使用工作jSONLint,一個令人敬畏的基於Web的工具,告訴你你的JSON是否有效。

http://jsonlint.com/

+0

我沒那麼熟悉'JSON'但可能我問,如何在'JSON'中更改/添加變量值?像上面的示例一樣,'ResultSet'有2個對象,我如何爲其添加另一個1? –

+0

@ChristianEricParan:你將從PHP頁面返回的JSON。做一個谷歌搜索從PHP創建json。結果中的每個元素都表示一個對象。因此,您可以添加與數據庫記錄相同數量的數字。 – Shyju

0

使用Ajax/jQuery的$不用彷徨樣本:

$.get(
    path_to_your_script. "?run=process_ajax_callback", 
    { 
     var_ajax: 1, // var sample 
     // more vars to your function 
    }, 
    function(response, status) { 
     // evaluate response var as a javascript object/array 
    }, 
    'json' // we expect json formatted response 
    ); 

從PHP函數返回值:

function process_ajax_callback() 
{ 
    // ... 

    $output['var'] = array(1, 2, 3); // var sample 

    echo json_encode($output); // encode as json!!! 

    exit; // very important (only output from this function) 
}