2016-01-24 3 views
1

Я получаю проблемы с devbridge autocomplete в моей формеdevbridge реализация AJAX автозаполнения запрос

мой заголовок раздел:

<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, но в моей форме, я ничего не получаю. Любая помощь будет принята с благодарностью

UPDATE
я добавил $(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 

ответ

0

Проблема была довольно ступицей d, но, возможно, это будет полезно для кого-то.
В моих connect.php была эта строка:

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

И это echo заблокировала сценарий. Я просто прокомментировал это, и теперь все в порядке

Смежные вопросы