JSON - 返回JSON的输入自动完成的jqGrid(JSON - Returning JSON

2019-09-26 14:54发布

我需要在这件事情帮助:我在jqGrid的做一个自动完成的,什么我需要做的是JSON返回到自动完成输入。 我在做这样的事情,但在我的自动完成只是返回一个值,并在数据库中,我有一个以上的。 有人可以帮我在这。 我做这样的回报:

...
header("Content-Type: application/json");
$i=0;
while($row = pg_fetch_array($result)) {
   $response->input['value']=$row[ac_fin_g];
   $i++;
}
echo json_encode($response);
...

但例如..我有在数据库中ac_fin_g值:{房子,家庭,蛋糕}。 如果我写的字母“O”,出现在正确的是“房子”和“HOME”在我的自动完成,但这没有发生。 当我改变上面的代码本的代码(用于输入=“HO”):

...
header("Content-Type: application/json");
$i=0;
while($row = pg_fetch_array($result)) {
   $response->input[$i]['value']=$row[ac_fin_g];
   $i++;
}
echo json_encode($response);
...

我有正确的JSON:

{"input":[{"value":"HOME      "},{"value":"HOUSE     "}]}

我很抱歉,但我不知道如何解决这个问题。 有人能帮助我吗?


更新:感谢@Oleg我想通了,如何做到这一点。 我的情况是:

$i=0;
while($row = pg_fetch_array($result)) {
$response[] = $row[ac_fin_g]; $i++;
}
echo json_encode($response);

:)

PS:此链接可能是有用的:)

Answer 1:

服务器应该创造出期望的jQuery UI JSON数据。 对应于jQuery UI的自动完成文件的JSON数据应该是

["HOME", "HOUSE"]

要么

[{"label": "Home", "value": "HOME"}, {"label": "House", "value": "HOUSE"}]

代替

{"input":[{"value":"HOME      "},{"value":"HOUSE     "}]}

您目前产生。 有办法来解码在客户端的任何其他JSON数据,但它只是为了更好地遵循jQuery用户界面自动完成标准格式。



Answer 2:

目前要覆盖用另一个值。 只需更换这一点:

while($row = pg_fetch_array($result)) {
   $response->input['value']=$row[ac_fin_g];
   $i++;
}

通过

while($row = pg_fetch_array($result)) {
   $response->input['value'][]=$row[ac_fin_g];
   $i++;
}


文章来源: JSON - Returning JSON to a input jqGrid autocomplete