【问题标题】:Need to comma delimit json encoded query需要用逗号分隔 json 编码查询
【发布时间】:2010-12-05 19:31:28
【问题描述】:

我正在尝试向某些表单字段添加自动完成标记器脚本,但在用逗号分隔值时遇到问题。

现在的情况是,如果有人向字段添加多个值,自动完成建议会将它们显示为一个长值,而不是每个值都显示为单独的值。我首先尝试在编码之前分解该值,但它没有以正确的格式放置它。下面是它现在的显示方式:

[{"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 做的不多,所以请具体一点,哈哈。

【问题讨论】:

  • 您的代码是用什么语言编写的,您目前使用的是什么?
  • 脚本是 jquery 使用 php 文件从我的数据库中提取值,不确定我是否可以在此处发布整个脚本,但会尝试添加它。
  • 你为什么写“lol”?
  • 您将一个 jQuery 插件的整个源代码粘贴到您的问题中?您可能只是链接到它。
  • 好的,如果发布的注意事项都包括在内,我很想在这里提供一些关于如何为 json 编码正确格式化值的想法。

标签: php mysql json


【解决方案1】:

除非我遗漏了一些东西,否则你应该能够简单地调整你的迭代:

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

但是,我只会将 cb_activities 设为数组,然后在 js 端根据需要将 joinsplit 设为数组。例如:

$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(',');

【讨论】:

  • 感谢您的回答,我知道您将使用它,但我不太确定如何在我的 js 文件中正确实现它。我假设我只是将 var activities = 添加到函数下方的顶部,但是我应该用 li_activities 替换所有 li_data.cb_activities 吗?到目前为止,我使用此方法尝试过的所有操作都不会显示任何字段。
  • 我想知道我是否认为这一切都错了,也许我可以在 js 中的某个地方添加一个 .split(',') 并得到我需要的结果?
  • ID 在您回复之前看不到您指向 JS 的链接...我的回答理想情况下是在 ajax 请求之后的回调中运行它的 JS 部分以获取 php 结果。跨度>
  • 有没有办法在这个字符串中添加逗号分隔符? var queryStringDelimiter = settings.url.indexOf("?")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-31
  • 1970-01-01
相关资源
最近更新 更多