2010-12-05 2 views
0

いくつかのフォームフィールドにオートコンプリートトークナイザスクリプトを追加しようとしていますが、値をカンマで区切る際に問題があります。jsonでエンコードされたクエリをカンマ区切りにする必要があります

人がフィールドに複数の値を追加すると、オートコンプリートの提案では、個々の値ではなく1つの長い値として表示されます。私は最初にエンコードする前に値を爆発させようとしましたが、正しいフォーマットにしません。

[{"cb_activities":"Kicking Cats,"},{"cb_activities":"baseball,hockey,"}] 

が、私はそれのように表示する必要があります:ここでは、それは今表示する方法です

[{"cb_activities":"Kicking Cats,"},{"cb_activities":"baseball,"},{"cb_activities":"hockey,"}] 

はここに私のPHPファイルです:

<? 
mysql_pconnect("localhost", "myuser", "mypass") or die("Could not connect"); 
mysql_select_db("mydb") or die("Could not select database"); 
$param = mysql_real_escape_string ($_GET["q"]); 

$query = sprintf("SELECT DISTINCT cb_activities FROM jos_comprofiler WHERE cb_activities REGEXP '^$param'"); 
$arr = array(); 
$rs = mysql_query($query); 

while($obj = mysql_fetch_object($rs)) 
{ 
    $arr[] = $obj; 
} 

echo json_encode($arr); 
?> 

ここでjQueryのスクリプトがあります: http://www.erecoverydev.com/autocomplete2/js/jquery.tokeninput.js

私はjsonとあまり関係ないので、特定の笑いをしてください。

+0

? – PleaseStand

+0

スクリプトはjqueryでphpファイルを使用してdbから値を取得していますが、ここでスクリプト全体を投稿できるかどうかはわかりませんが、追加しようとします。 – sfraise

+1

なぜ "lol"と書いたのですか? – thejh

答えて

0

イムは、あなたは、単にあなたの反復を調整することができるはず何か欠けている場合を除き:

$activities = array(); 
while($obj = mysql_fetch_object($rs)) 
{ 
    $activities[] = array('cb_activities' => $obj->cb_activities); 
} 

をしかし、私はちょうどcb_activitiesが配列し、その後joinまたはsplit JS側で、必要に応じて配列することになるだろう。例えば:あなたはできるあなたのjsで次に

$activities = array(); 

while($obj = mysql_fetch_object($rs)) 
{ 
    $activities[] = $obj->cb_activities; 
} 

echo json_encode(array('cb_activities' => $activities)); 

へ:

コードが書き込まれ、そしてあなたが現在何を使用している言語は何
// assume data is the json returned by the server 

var activities = data.cb_activities.join(','); 
+0

答えてくれてありがとう、私はあなたがそれに行くつもりだが、私は私のjsファイルに正しく実装する方法がよくわからない。私はvarのアクティビティを関数のすぐ下のトップに追加すると仮定しますが、li_data.cb_activitiesのすべてをli_activitiesに置き換える必要がありますか?これまでにこの方法で試したことはすべて、フィールドが表示されなくなりました。 – sfraise

+0

私はこれをすべて間違って考えているのだろうかと思っています。おそらく、ここでは.split( '、')をjsのミックスのどこかに追加して、必要な結果を得ることができますか? – sfraise

+0

IDのidntはあなたが返信した後JSまであなたのリンクを参照してください...私の答えは理想的にはPHPの結果を得るためにajax要求の後にコールバックで実行されてJSの部分を持っています。 – prodigitalson