2013-04-06 5 views
2

Я пытаюсь создать автозаполнение, но когда я набираю фамилию в текстовом поле, она не отображает полное имя.Автозаполнение не работает должным образом

JavaScript:

$(document).ready(function(){ 
     $("#txtBuscar").autocomplete("autocomplete.php", { 
      selectFirst: true 
     }); 
}); 

PHP:

require('conecta.php'); 
ini_set('display_errors',1); error_reporting(E_ALL); 
$cSQL="SELECT NOMBRE, APELLIDOS FROM personas WHERE APELLIDOS LIKE '%?%' ORDER BY APELLIDOS"; 
$stmt=$oConni->prepare($cSQL) or die($oConni->error); 
    $stmt->bind_param('s',$_GET['q']); 
    $stmt->execute(); 
    $stmt->bind_result($nombre,$apellidos); 
    while ($stmt->fetch()) { 

     echo $apellidos.', '.$nombre."\n"; 

    } 
    $stmt->close(); 
+0

Что делает PHP-шоу, если вы звоните его из адресной строки или смотреть в Вкладка NET f.ex. Chrome – mplungjan

+0

Убедитесь, что PHP возвращает объект JSON с полями 'label',' value' или и то, и другое. – 2013-04-06 19:13:51

+0

Вы используете автозаполнение jQueryUI? Если это так, это не правильный синтаксис. –

ответ

2

Я думаю, что параметр ? в вашем LIKE аргумента не заполняются в, так как он находится в строке. Если вы используете MySQL, попробовать что-то вроде этого:

$cSQL="SELECT NOMBRE, APELLIDOS FROM personas WHERE APELLIDOS LIKE CONCAT('%', ?, '%') ORDER BY APELLIDOS"; 

Для Oracle, использовать что-то вроде этого:

$cSQL="SELECT NOMBRE, APELLIDOS FROM personas WHERE APELLIDOS LIKE '%' || ? || '%' ORDER BY APELLIDOS"; 
+0

RESOLVED: решение, как указано @Marcellus – jal

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