【问题标题】:devbridge autocomplete query AJAX implementationdevbridge 自动完成查询 AJAX 实现
【发布时间】:2016-04-30 16:57:45
【问题描述】:

我在表单中遇到了devbridge autocomplete 的问题

我的标题部分:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="/autocomplete/jquery.autocomplete.min.js"></script>

带有输入字段的页面如下所示:

<script>
$('#client_recommendation').autocomplete({
    serviceUrl: '/autocomplete/ClientRecommendation.php',
    onSelect: function (suggestion) {
        alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
    }
});
</script>

<form action="/scripts/add_client.php" method="post" name="add_client">
    <fieldset>
        <label for="client_recommendation">Recommendation:</label>
        <input name="client_recommendation" size="25" type="text" id="client_recommendation" />
    </fieldset>
</form>

ClientRecommendation.php

require '../scripts/connect.php';

$cr  = trim($_GET['client_recommendation']); //also tried trim($_GET['query']);


    $sql = "SELECT  client_name, client_id
                          FROM (
                            SELECT CONCAT(
                                client_name, ' ', client_surname, IF(
                                    LENGTH(client_prompt), 
                                    CONCAT(' (',client_prompt,')'), '')
                                )
                            AS client_name, client_id
                            FROM `clients`
                          ) 
                          clients 
                          WHERE client_name LIKE '%" . $cr . "%' 
                          ORDER BY client_name";

    $result = $conn->query($sql); 
    $reply = array();
    $reply['query'] = $cr;
    $reply['suggestions'] = array();

    while($row = $result->fetch_assoc()) {

        $reply['suggestions'][]=$row['client_name'];

    }

    echo json_encode($reply);

    $conn->close();

作为一个测试,我尝试了这个:

$cr  = "pa";

ClientRecommendation.php 返回正确的结果:

{"query":"pa","suggestions":["Pavlo hryhorash"]}

这是有效的 JSON,但在我的表单中我什么也得不到。 任何帮助将不胜感激

更新
我将$(document).ready 添加到带有输入字段的页面中的脚本中:

<script>
    $(document).ready(function(){
    $('#client_recommendation').autocomplete({
        serviceUrl: '/autocomplete/ClientRecommendation.php',
        onSelect: function (suggestion) {
            alert('You selected: ' + suggestion.value);
        }
    });
    });
</script>  

之后,生成的建议的 HTML 标记开始与页面一起加载,在输入字段中输入时,我在控制台中看到此错误:

Uncaught SyntaxError: Unexpected token <
m.parseJSON @ jquery.min.js:4g.transformResult @ 
jquery.autocomplete.min.js:49(anonymous function) @  
jquery.autocomplete.min.js:288j @ jquery.min.js:2k.fireWith @ jquery.min.js:2x @ 
jquery.min.js:4b @ jquery.min.js:4

【问题讨论】:

    标签: ajax autocomplete


    【解决方案1】:

    这个问题相当愚蠢,但也许它会对某人有所帮助。
    在我的connect.php 中有这个字符串:

    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    echo "<!--Connected successfully !-->";
    

    这个echo 阻止了脚本。我刚刚评论了它,现在一切都很好

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-23
      • 2014-05-31
      • 2013-05-25
      • 2013-10-30
      • 2013-01-12
      • 2020-05-10
      • 1970-01-01
      相关资源
      最近更新 更多