php - 当返回的 JSON 数据中有换行符时,jQuery UI 自动完成功能不起作用

标签 php jquery json jquery-ui autocomplete

我的目标

使用 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

如果我删除 description条目来自$items$result数组,一切都按预期进行。在经历了这里的SO线程之后,我尝试了一些事情:

我尝试了什么

尝试过str_replace('\n', '\\n', $r['book_description'])

尝试过str_replace('<br />', '\\n', $r['book_description'])

出于沮丧甚至尝试了urlencode($r['book_description'])

但它们似乎都不起作用。这个问题有解决办法吗?

提前致谢。

<小时/>

更新

使用json_encode返回的集合上的结果是:

enter image description here

最佳答案

您正在使用 json_encode() ? ..它应该为你逃避一切。您也可以尝试类似的方法

$newDesc = str_replace(PHP_EOL, "", $r['book_description']);

$newDesc = str_replace(chr(10), "", $r['book_description']);
$newDesc = str_replace(chr(13), "", $newDesc);

关于php - 当返回的 JSON 数据中有换行符时,jQuery UI 自动完成功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12016126/

相关文章:

php - 自动执行 HTTP Post

PHP wp_get_referer 未设置值(有时)

javascript - 使用 jQuery 将动态 id 分配给元素

java - Groovy 生成的类名

php - Symfony路由ajax get方法

php - 无需重新加载页面即可更改的动态计数器

javascript - 在jquery中访问 sibling

javascript - 使用 jQuery 隐藏/显示表格行

json - 如何使用 express.js 向本地 json 文件发出 GET 请求?

javascript - 如何在Json Node js中传递变量的值而不是变量名