2011-03-24 17 views
1

我只是試圖通過jQuery的AJAX將數組的元素吐到一個表單上的單獨輸入字段。jquery使用AJAX的json_encoded數組

繼承人我的javascript代碼:

 $('#based').change(function() { 
     if ($(this).val().length > 0) 
     {   
      $.ajax({ 
       type: "POST", 
       url: "ajax.php", 
       data: "id="+$(this).val(), 
       success: function(data){ 
        if (data != 'error') 
        {      
         $('#keyword').val(data[2]); 
         $('#keyword_slug').val(data[3]); 
        } 
       } 
      }); 
     } 
    }); 

我的繼承人爲 'ajax.php' PHP代碼:

$sql = mysql_query("select * from `keywords` where `id`='".mysql_real_escape_string($_POST['id'])."'"); 

if (mysql_num_rows($sql) == 0) 
{ 
    echo 'error'; 
} 
else 
{ 
    while ($row = mysql_fetch_assoc($sql)) 
    { 
     foreach ($row as $k => $v) 
      $data[] = $v; 
    } 

    echo json_encode($data); 
} 

它不工作。我在這裏做什麼?我已經查看了serializeArray,但無法正常工作。

+0

你的返回數組是什麼樣的? – alex 2011-03-24 01:02:52

+0

您可以打印服務器上和客戶端上的數據陣列的長度嗎? – allthenutsandbolts 2011-03-24 01:03:19

+0

你的POST是什麼?究竟是什麼腳本返回? – bensiu 2011-03-24 01:04:30

回答

2

我想你需要dataType: 'json'如果你期待JSON回來。

否則jQuery有猜測,如果你沒有發送內容類型application/json,它可能會猜錯。

+0

如果出現這個問題,最好在PHP中完成,並將'Content-Type'頭部設置爲'JSON' – 2011-03-24 01:04:45

+0

@cwolves我希望你的意思是'application/json'。我也更喜歡明確說明返回類型。 – alex 2011-03-24 01:12:35

+0

是的,腦屁:) – 2011-03-24 01:13:51