Bootstrap TypeAhead与MySQL无法正常工作

时间:2014-09-12 08:38:59

标签: php jquery mysql twitter-bootstrap typeahead

我的html中有以下内容:

    <td>
        Maintenance Provider
    </td>
    <td>
        <input type=text name='maintenance' id='maintenance'/>
    </td>
    </tr>
</table>

我在JS中有以下内容,它使用Bootstrap typeahead:

$(function() {  
    $('#maintenance').typeahead({ 
        source: function (query, process) {
            return $.getJSON(
                '/processing.php?search_preencoded=Y',
                { query: query },
                function (data) {
                    return process(data);
                }
            );
        }
    });
});

Processing.php代码片段是:

if(isset($_GET['search_preencoded'])){
    $db2=new mysqli("localhost","root","","external");
    $sql="select * from preencoded where content like '".$_POST['query']."%%'";
    $rs=$db2->query($sql);
    $nm=$rs->num_rows;
    for($i=0;$i<$nm;$i++){
        $row=$rs->fetch_assoc();

        $data[]=$row['content'];

    }
    echo json_encode($data);
}

但是当我输入假定在数据库中的内容时,typeahead不起作用!请注意,该表只有两个字段:代码和内容。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为你的 LIKE 是错误的尝试:

    $sql = "select * from preencoded where content like '%" . $_POST['query'] . "%'";

看看 - http://www.tutorialspoint.com/mysql/mysql-like-clause.htm

根据您想要的搜索类型,您需要在$ _POST [&#39;查询&#39;]之前,之后或之前和之后使用%。

同时格式化您的问题,以便更容易阅读。