我的自动填充结果显示为html标记

时间:2014-05-30 22:53:57

标签: php jquery jquery-plugins autocomplete

当我开始编写输入时,我的结果会显示为html标记,例如,如果我搜索“t”,我会得到:Title<p><span>Content</span></p>。我想要标题内容,没有没有HTML标签。

这是我的php:

$search = isset($_GET['term']) ? $_GET['term'] : "";
$pdo = conecting();
$read = $pdo->prepare("SELECT * from articles WHERE title LIKE ?");   
$read ->bindValue(1, "%$search%", PDO::PARAM_STR);
$read ->execute();

$data = array();

while($res = $read ->fetch(PDO::FETCH_ASSOC))
  {
     $data[] = $res['title'].'-'.$res['content'];
  }
echo json_encode($data); 

这是我开始自动完成的jQuery:

$('.j_autocomplete').autocomplete({

        source: 'http://localhost/project/tpl/search.php'
        select: function(event, ui){
            var get= ui.item.value; 
            returndata(get);
        },
        change: function(data)
        {
            returndata($(this).val());
        }
    });

你知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

尝试使用这种方式:

在自动完成初始化后添加此代码:

.data("ui-autocomplete")._renderItem = function (ul, item) {
     return $("<li></li>")
         .data("item.autocomplete", item)
         .append("<a>" + item + "</a>")
         .appendTo(ul);
 };

像这样:

$('.j_autocomplete').autocomplete({

    source: 'http://localhost/project/tpl/search.php'
    select: function(event, ui){
        var get= ui.item.value; 
        returndata(get);
    },
    change: function(data)
    {
        returndata($(this).val());
    }
}).data("ui-autocomplete")._renderItem = function (ul, item) {
     return $("<li></li>")
         .data("item.autocomplete", item)
         .append("<a>" + item + "</a>")
         .appendTo(ul);
 };