Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 需要逗号分隔json编码的查询_Php_Mysql_Json - Fatal编程技术网

Php 需要逗号分隔json编码的查询

Php 需要逗号分隔json编码的查询,php,mysql,json,Php,Mysql,Json,我试图在一些表单字段中添加一个自动完成标记器脚本,但在分隔逗号处的值时遇到了问题 现在的情况是,如果一个人向字段中添加多个值,则自动完成建议将显示为一个长值,而不是每个值。我第一次尝试在编码之前分解该值,但它没有以正确的格式放置它。下面是它现在的显示方式: [{"cb_activities":"Kicking Cats,"},{"cb_activities":"baseball,hockey,"}] 但我需要它显示为: [{"cb_activities":"Kicking Cats,"},{"

我试图在一些表单字段中添加一个自动完成标记器脚本,但在分隔逗号处的值时遇到了问题

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

[{"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);
?>

除非我遗漏了什么,否则您可以简单地调整迭代:

$activities = array();
while($obj = mysql_fetch_object($rs))
{
    $activities[] = array('cb_activities' => $obj->cb_activities);
}
但是,我只需要将
cbu活动
设置为一个数组,然后在js端根据需要加入
join
split
数组。例如:

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

您的代码是用什么语言编写的,您当前使用的是什么?脚本是jquery使用一个php文件从我的数据库中提取值,不确定是否可以在这里发布整个脚本,但会尝试添加它。您为什么编写“lol”?您将jquery插件的整个源代码粘贴到了您的问题中?你可以直接链接到它。好的,如果讨论了发布的“做”和“不做”的话,我想在这里介绍一些关于如何为json编码正确设置值格式的想法。谢谢你的回答,我知道你将如何使用它,但我不确定如何在我的js文件中正确实现它。我假设我只是将var activities=添加到函数下面的顶部,但是我应该用li_活动替换所有li_data.cb_活动吗?到目前为止,我用这个方法尝试的所有方法都没有显示任何字段。我想知道我是否认为这是完全错误的,也许我可以在js的混合中的某个地方添加一个.split(“,”),然后得到我需要的结果?直到你回复后,我才看到你指向js的链接。。。我的答案最好是在ajax请求发出后在回调中运行JS部分,以获得php结果。有没有办法在这个字符串中添加逗号分隔符?var queryStringDelimiter=settings.url.indexOf(“?”)<0?"?" : "&";