Необходимо разделить запятыми JSON кодированный запрос - PullRequest
0 голосов
/ 05 декабря 2010

Я пытаюсь добавить скрипт автозаполнения токенайзера в некоторые поля формы, и у меня возникла проблема с разделением значений через запятую.

Теперь, когда человек добавляет несколько значений в полепредложения автозаполнения будут отображать их как одно длинное значение, а не как отдельное значение.Сначала я попытался взорвать значение, прежде чем кодировать его, но он не поместил его в правильный формат.Вот как это выглядит сейчас:

[{"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

Я не так много сделал с Джсоном, поэтому, пожалуйста, будьте конкретны, лол.

1 Ответ

0 голосов
/ 05 декабря 2010

Если я что-то не упустил, вы можете просто настроить итерацию:

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

Однако я бы просто сделал cb_activities массивом, а затем join или split массивом, если необходимо, на стороне js. например:

$activities = array();

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

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

Тогда в вашем JS вы могли бы:

// assume data is the json returned by the server

var activities = data.cb_activities.join(',');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...