Ajax поиск

Ответить
Аватара пользователя
darksmoke

Ajax поиск

Сообщение darksmoke »

Добрый день.

Нашел вот интересный скрипт поиска на Ajax. Он работает, но не до конца. В нем есть синтаксические ошибки. Может кто понимает помогли б исправить?

И другим поколениям будет скрипт хороший в наследство.

Спасибо.



Поле ввода поискового выражения и для отображения результатов поиска.

Добавьте подключение javascript function в тег :





HTML код:



...а следующий код разместите в секции :



HTML код:

Код: Выделить всё

Ajax Search Engine






Search Results
Type something into the input field



ajax_framework.js:



Код:

Код: Выделить всё

/* -------------------------- */
/*   XMLHTTPRequest Enable    */
/* -------------------------- */
function createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
} else {
request_type = new XMLHttpRequest();
}
return request_type;
}
var http = createObject();
/* -------------------------- */
/*        SEARCH              */
/* -------------------------- */
function searchNameq() {
searchq = encodeURI(document.getElementById('searchq').value);
document.getElementById('msg').style.display = "block";
document.getElementById('msg').innerHTML = "Searching for " + searchq+"";
// Set te random number to add to URL request
nocache = Math.random();
http.open('get', 'in-search.php?name='+searchq+'&nocache = '+nocache);
http.onreadystatechange =  searchNameqReply;
http.send(null);
}
function searchNameqReply() {
if(http.readyState == 4){
var response = http.responseText;
document.getElementById('search-result').innerHTML = response;
}
}

Поиск в базе in-search.php:



PHP код:




config.php



PHP код:

Код: Выделить всё

// Connection's Parameters

$db_host="localhost";

$db_name="database_name";

$username="database_username";

$password="database_password";

$db_con=mysql_connect($db_host,$username,$password);

$connection_string=mysql_select_db($db_name); 



Аватара пользователя
Coutty

Re: Ajax поиск

Сообщение Coutty »

Ну и? Какие ошибки выдаёт и в каком файле?

На первый взгляд - не хватает одинарной кавычки и точки с запятой после строки WHERE name LIKE "%' . $searchq .'%"
Аватара пользователя
Igor_I

Re: Ajax поиск

Сообщение Igor_I »

PHP код:




Автор скрипта даже не удосужился проверить
Аватара пользователя
darksmoke

Re: Ajax поиск

Сообщение darksmoke »

Ошибки в фале in-search.php:



Код:

Код: Выделить всё

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\ukrosvita\www\in-search.php



PHP код:

Код: Выделить всё

$total =  mysql_num_rows(getTask); 






и



Код:

Код: Выделить всё

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\ukrosvita\www\in-search.php



PHP код:

Код: Выделить всё

while ($row = mysql_fetch_array($getName)) { 






Шапку изменил, точнее апгредил примером Igor_I.
Аватара пользователя
Sham

Re: Ajax поиск

Сообщение Sham »

'Task' везде замените на 'Name'
Цитата darksmoke:



$total = mysql_num_rows(getTask);
Ajax поиск




тут параметр дб переменная ($getName) (сайчас некая константа)
Аватара пользователя
darksmoke

Re: Ajax поиск

Сообщение darksmoke »

Цитата Sham:



'Task' везде замените на 'Name'
Ajax поиск




Заменил, ошибки все равно есть.





Код:

Код: Выделить всё

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\ukrosvita\www\in-search.php



PHP код:

Код: Выделить всё

$total =  mysql_num_rows(getName); 








Код:

Код: Выделить всё

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\ukrosvita\www\in-search.php



PHP код:

Код: Выделить всё

while ($row = mysql_fetch_array($getName)) { 



Аватара пользователя
Sham

Re: Ajax поиск

Сообщение Sham »

PHP код:

Код: Выделить всё

$getName_sql = 'SELECT * FROM USER  

      WHERE name LIKE "%' . $filterget['searchq'].'%"';

$getName = mysql_query($getName_sql, $db_con);

$total =  mysql_num_rows($getName);



while ($row = mysql_fetch_array($getName)) {

echo $row.name . '
';  

} 







Цитата darksmoke:



$db_con=mysql_connect($db_host,$username,$password);

$connection_string=mysql_select_db($db_name);

// Connection

mysql_connect($db_host,$username,$password);

mysql_select_db($db_name);
Ajax поиск




не понятно зачем две последние строки, нужно оставить только две



PHP код:

Код: Выделить всё

$db_con=mysql_connect($db_host,$username,$password); 

$connection_string=mysql_select_db($db_name, $db_con); 



Аватара пользователя
Igor_I

Re: Ajax поиск

Сообщение Igor_I »

!!!

Писать надо самому, а не разбиратся в чужом ... , причём неграмотном коде.

И писать проверки. Через тот же самый echo, print_r, dump & etc.

А то получается, что запрос присваивается $getName_sql, а к базе отправляется mysql_query($getTask_sql)...
Ответить

Вернуться в «Вебмастеру»