我的目标
使用 jQuery UI 自动完成来搜索一本书,当从建议下拉列表中单击一本书时,使用select
自动完成功能使用所选书籍的详细信息填充 HTML 表单的其余部分。
问题
只要返回的数据不包含换行符(我description
在数据库中调用了一个表字段,并且在存储的数据中有换行符),自动完成就像一个魅力。但是,如果我将description
字段数据包含到返回的数组中,则建议下拉列表将无法显示。但是,当使用 Firebug 检查时,正在返回数据;只是没有出现
编码
// STORING INFORMATION FROM THE DATABASE
$items[$r['book_id']] = array('name'=>$r['book_name'],
'category'=>$r['c_id'],
'author'=>$r['book_author'],
'vendor'=>$r['book_publisher'],
'edition'=>$r['book_edition'],
Culprit here --> 'description'=>$r['book_description'],
'price'=>$r['book_price'],
'date'=>$r['date']);
// DATA FOR POPULATING THE HTML FORM (USING ui.item.<index name>)
$result = array();
foreach ($items as $key=>$value)
{
array_push($result, array("id"=>$key,
"label"=>$key."-".$value['name'],
"value" => strip_tags($value['name']),
"name" => $value['name'],
"cat" => $value['category'],
"author" => $value['author'],
"vendor" => $value['vendor'],
"edition" => $value['edition'],
"description" => $value['description'],
"price" => $value['price'],
"date" => $value['date']));
}
// $result is then supplied to a function which converts the data to json
如果我从and数组中删除description
条目,一切都会按预期工作。在这里通过 SO 线程后,我尝试了几件事:$items
$result
我尝试了什么
试过了str_replace('\n', '\\n', $r['book_description'])
试过了str_replace('<br />', '\\n', $r['book_description'])
出于沮丧甚至尝试urlencode($r['book_description'])
但它们似乎都不起作用。这个有解决方法吗?
提前致谢。
更新
在返回的集合上使用json_encode
会导致: