0

オートコンプリート トークナイザー スクリプトをいくつかのフォーム フィールドに追加しようとしていますが、問題の 1 つは、フィールドに複数の値を保存すると、オートコンプリートの提案がすべての値を単一ではなく 1 つの長い値として返すことです。コンマで区切られた値。最初に値を単純に爆発させようとしましたが、json エンコードで正しくフォーマットされません。

ここに私のphpファイルがあります:

//connection information
 $host = "localhost";
 $user = "myuser";
 $password = "mypass";
 $database = "mydb";
 $param = ($_GET["term"]);

 //make connection
 $server = mysql_connect($host, $user, $password);
 $connection = mysql_select_db($database, $server);

 //query the database
 $query = mysql_query("SELECT cb_activities FROM jos_comprofiler WHERE cb_activities REGEXP '^$param'");

 //build array of results
  for ($x = 0, $numrows = mysql_num_rows($query); $x < $numrows; $x++) {
  $row = mysql_fetch_assoc($query);
  $activities[$x] = array(cb_activitiesterm => $row[cb_activities]); 
  }

 //echo JSON to page
 $response = $_GET["callback"] . "(" . json_encode($activities) . ")";
 echo $response;

 mysql_close($server);

[{"cb_activities":"Kicking Cats,"},{"cb_activities":"baseball,hockey,"}] のような出力が得られますが、次のように出力する必要があります: [{"cb_activities":"Kicking猫,"},{"cb_activities":"野球,"},"cb_activities":"ホッケー,"}]

また、重複したエントリが入力されないようにする方法を見つける必要もあります。たとえば、10 人全員が値として選択された猫を蹴っていると言い、オートコンプリートの提案で 10 回表示されます。

コンマで正しく区切り、重複する値を除外するように設定するにはどうすればよいですか? 私はjsonをあまり使っていないので、具体的に言ってください笑。

4

1 に答える 1

0

重複する問題の NM です。select だけでなく、select distinct を追加しただけです。コンマで適切に区切る方法を理解できれば、すべてうまくいくでしょう。

于 2010-12-05T19:19:26.980 に答える