2012-05-04 7 views
0

jqueryのajax関数を使用して、外部のPHPファイルからデータを取得しています。 phpファイルから返されるデータはオートコンプリート機能に使用されます。しかし、autocomplete関数の代わりにPHPファイルの配列からそれぞれの特定の値を示唆し、それらのすべてを返します。私のjqueryはこのように見えます。jqueryオートコンプリート返されるソース配列

<?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; 
} 
?> 

オートコンプリート作品:

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ファイルは次のようになります。しかし、入力フィールドに何かを入力し始めると、読み込まれた提案は配列全体になります。私は "シカゴカブス"、 "ボストンレッドソックス"、 "アトランタブレーブス" .....

+0

私はあなたがカンマで区切られたオートコンプリートではなく、文字列のためのJSON形式を返す必要があります信じています。私は正しい? –

+0

links.phpのクエリは、年が一致したときにレコードを選択します。それが正しいか? – nithi

+0

はい、年と一致する場合。 – Lance

答えて

0

を取得します.Jsonを使用して、PHPスクリプトで出力します。 ATM "、"と組み合わせて使用​​するjavascriptでは、単一の配列要素には解析されません。私はそれがあなたが望むものだとは思わない。また、データの必要なデータ構造にも注意してください。ワーキング例えば

(クライアント側でリモートJSONPの例http://jqueryui.com/demos/autocomplete/#remote-jsonpを参照)

関連する問題