2012-11-08 69 views
1

我遇到了以下問題:我編寫了一個搜索函數,將結果保存到數組中。當我用jquery form plugin處理該函數的響應時,我創建了一個附加數組,該數組填充了搜索創建的所有數組。然後,我想將這個多數組解析爲我的jQuery腳本作爲JSON對象。到目前爲止這麼好,但我如何使多數組可訪問腳本? (像multiarray.array1.property)使用JSON和多維數組(JS)

這裏是到目前爲止我的代碼:

  • [HTML/JS]
<!DOCTYPE html> 
<html> 
<body> 
<div class="edit"> 
<h2>Editieren</h2> 
<form id="suchen" method="post"><input type="text" id="search" name="id"> 
<input type="submit" value="Senden"></form> 
</div> 
</html> 

$('#suchen').ajaxForm({ 

    url: "./php/search.php", 
    dataType: 'json', 
    success: function(data){ 

     alert(data[0]) ; 

    }, 
     clearForm: true 
}) ;​ 

預先感謝您

編輯:

JSON的例子:

{ 
    "id": "33", 
    "firma": "sls", 
    "strasse": "Industriegebiet Siebend", 
    "plz": "66663", 
    "ort": "Merzig", 
    "vorname": "", 
    "nachname": "Ruf", 
     "email": "[email protected] ", 
    "bemerkung": "", 
    "partner": "", 
    "kinder": "1", 
    "nation": "D", 
    "betreuer": "Adam", 
    "anrede": "Herr" 
} 
+1

您能否提供生成的JSON樣本? –

+0

當然,完成:) – Sprottenwels

回答

2

在你的PHP

 while($row = mysql_fetch_array($result)){ 

        $article = array (

         "id"=>$row['id'], 
         "firma"=>$row['firma'], 
         "strasse"=>$row['strasse'], 
         "plz"=>$row['plz'], 
         "ort"=>$row['ort'], 
         "vorname"=>$row['vorname'], 
         "nachname"=>$row['nachname'], 
         "email"=>$row['email'], 
         "bemerkung"=>$row['bemerkung'], 
         "partner"=>$row['partner'], 
         "kinder"=>$row['kinder'], 
         "nation"=>$row['nation'], 
         "betreuer"=>$row['betreuer'], 
         "anrede"=>$row['anrede'], 

        ) ; 
        $hits[] = $article; 
     } 

        echo json_encode($hits) ; 

在你的jQuery ...

$('#suchen').ajaxForm({ 

    url: "./php/search.php", 
    dataType: 'json', 
    success: function(data){ 
     $.each(data, function(i, val){ 
      console.log(val); /*alert don't work on arrays*/ 
      alert(val.firma); /*you can alert some array key for example*/ 
     });  
    }, 
     clearForm: true 
}) ;​ 

我的console.log更換警報,因爲VAL將陣列... 訪問任何鍵後只寫val.keyname ..

as .. alert(val.strasse);

+0

謝謝,但看來我做錯了什麼。 訪問鍵名不起作用,它說,當我嘗試它,因爲你在上面寫的時候沒有定義。另外,我不明白如何在數組之間切換。 – Sprottenwels

+1

我更新了我的答案在jquery上,請在你的地方更改 – Svetoslav

+0

我明白了,非常感謝:) – Sprottenwels

0

parseJSON幫助你

var data = jQuery.parseJSON('{"name":"John"}'); 
alert(data.name); 
+0

爲什麼你不使用'JSON.parse' – EaterOfCode