I'm trying to add an autocomplete tokenizer script to some form fields and am having an issue with delimiting the values at the commas.
The way it is now if a person adds multiple values to the field the autocomplete suggestions will display them as one long value instead of each as an individual value. I first tried to explode the value before encoding it but it doesn't put it in the right format. Here's how it displays now:
[{"cb_activities":"Kicking Cats,"},{"cb_activities":"baseball,hockey,"}]
but I need it to display as:
[{"cb_activities":"Kicking Cats,"},{"cb_activities":"baseball,"},{"cb_activities":"hockey,"}]
Here's my php file:
<?
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_comprofi开发者_JS百科ler WHERE cb_activities REGEXP '^$param'");
$arr = array();
$rs = mysql_query($query);
while($obj = mysql_fetch_object($rs))
{
$arr[] = $obj;
}
echo json_encode($arr);
?>
Here's the jquery script: http://www.erecoverydev.com/autocomplete2/js/jquery.tokeninput.js
I haven't done much with json so please be specific lol.
Unless im missing something you should be able to simply adjust your iteration:
$activities = array();
while($obj = mysql_fetch_object($rs))
{
$activities[] = array('cb_activities' => $obj->cb_activities);
}
However, I would just make cb_activities
be an array and then join
or split
the array as necessary on the js side. for example:
$activities = array();
while($obj = mysql_fetch_object($rs))
{
$activities[] = $obj->cb_activities;
}
echo json_encode(array('cb_activities' => $activities));
Then in your js you could to:
// assume data is the json returned by the server
var activities = data.cb_activities.join(',');
精彩评论