2012-05-04 57 views
0

我正在使用jquery的ajax函數從外部php文件中獲取數據。從php文件返回的數據將用於自動完成功能。但是,而不是自動完成功能在PHP文件中提示數組中的每個特定值,它將返回所有這些值。我的jQuery看起來像這樣。jquery autcomplete返回源數組

jQuery('input[name=past_team]:radio').click(function(){ 
      $('#shadow').fadeIn('slow'); 
      $('#year').fadeIn('slow'); 

      var year = $('#year').val(); 

      $('#year').change(function() { 
       $('#shadow').val(''); 

       $.ajax({ 
        type: "POST", 
        url: "links.php", 
        data: ({ 
         year: year, 
         type: "past_team" 
        }), 
        success: function(data)  
        { 
         var data = [data]; 

         $("#shadow").autocomplete({ 
          source: data 
         }); 
        } 
       }); 
      }); 
     }); 

的link.php文件看起來是這樣的:

<?php 
session_start(); 
require_once("functions.php"); 
connect(); 

$type = $_POST['type']; 
$year = $_POST['year']; 

if($type == "past_team") 
{ 
    $funk = mysql_query("SELECT * FROM past_season_team_articles WHERE year = '".$year."'")or die(mysql_error()); 
    $count = mysql_num_rows($funk); 
    $i  = 0; 

    while($row = mysql_fetch_assoc($funk)) 
    { 
     $name[$i] = $row['team']; 

     $i++; 
    } 

    $data = ""; 

    for($i=0;$i<$count;$i++) 
    { 
     if($i != ($count-1)) 
     { 
      $data .= '"'.$name[$i].'", '; 
     } else 
     { 
      $data .= '"'.$name[$i].'"'; 
     } 
    } 

    echo $data; 
} 
?> 

自動完成的作品。但是,當我開始在輸入字段中輸入內容時,加載的建議是整個數組。我會得到「芝加哥小熊隊」,「波士頓紅襪隊」,「亞特蘭大勇士隊」,......

+0

我相信你應該返回用逗號分隔的自動完成,而不是一個字符串JSON格式。我對嗎? –

+0

您在links.php中的查詢會在年份匹配時選擇記錄。這是對的嗎? – nithi

+0

是的,當它匹配一年。 – Lance

回答

0

使用Json在php腳本中呈現輸出。 自動櫃員機它沒有通過JavaScript解析只與「,」concaternated單個數組元素。我不認爲這就是你想要的。還要注意數據所需的數據結構。

對於工作示例(客戶端上的看到的遠程JSONP例如http://jqueryui.com/demos/autocomplete/#remote-jsonp