2015-06-06 1 views
0

Вот HTML и код JavaScript:Ajax livesearch окно

$('document').ready(function(){ 
 
    $('input.typeahead').typeahead({ 
 
     name: 'typeahead', 
 
     remote:'livesearch.php?key=%QUERY', 
 
     limit : 10 
 
    }); 
 
}); 
 
<html> 
 
    <head> 
 
    <title>Ajax Search Box using PHP and MySQL</title> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">  </script> 
 
    <script src="typeahead.js"></script> 
 
    </head> 
 
    <body> 
 
    <input type="text" name="typeahead"> 
 
</body> 
 
</html>

Файл PHP содержит:

$key=$_GET['key']; 
$array = array(); 
$query = $db->query(" SELECT * from product WHERE ProductName LIKE '%{$key}%' ") or die (mysql_error()); 
while($row = $query->fetch()) 
{ 
$array[] = $row['ProductName']; 
} 
echo json_encode($array); 

РНР работает абсолютно нормально. Но я не могу получить текст в поле ввода

+0

Как вы можете сказать, что это работает нормально? Вы можете увидеть скрипт php, который вызывается при вводе (Проверить инструменты разработчика, вкладку сети). Любые ошибки скрипта в консоли? Что/где есть typeahead.js? Если есть ошибка, она может быть там. – GolezTrol

+2

Вы не выбираете элемент ввода. Используйте '$ ('input [name = typeahead]')'. Ваш селектор ищет вход с ** классом ** typeahead. – Barry

+0

Обратите внимание, что ваш запрос очень опасен. Люди могут вводить фрагменты кода SQL в поле и прерывать ваш скрипт или, возможно, повредить вашу базу данных. – GolezTrol

ответ

1

Использование

$('input[name=typeahead]') 

применить функцию машинописной к входному элементу.

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