Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Ajax поиск

Ответить
Настройки темы
Ajax поиск

Пользователь


Сообщения: 91
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изменения
Автор: darksmoke
Дата: 17-06-2009
Добрый день.
Нашел вот интересный скрипт поиска на Ajax. Он работает, но не до конца. В нем есть синтаксические ошибки. Может кто понимает помогли б исправить?
И другим поколениям будет скрипт хороший в наследство.
Спасибо.

Поле ввода поискового выражения и <div id="search-result"> для отображения результатов поиска.
Добавьте подключение javascript function в тег <head>:

HTML код: Выделить весь код
<script language="javascript" src="ajax_framework.js"></script>

...а следующий код разместите в секции <body>:
HTML код: Выделить весь код
<h2>Ajax Search Engine</h2> <form id="searchForm" name="searchForm" method="post" action="javascript:insertTask();"> <div class="searchInput"> <input name="searchq" type="text" id="searchq" size="30" onkeyup="javascript:searchNameq()"/> <input type="button" name="submitSearch" id="submitSearch" value="Search" onclick="javascript:searchNameq()"/> </div> </form> <h3>Search Results</h3> <div id="msg">Type something into the input field</div> <div id="search-result"></div>

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 <strong>" + 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 код: Выделить весь код

<?php  

include('config.php');   
$getforfilter = array 
(                                   
      
'searchq'        => array ( 
                            
"filter"     => FILTER_VALIDATE_REGEXP
                            
"options"      => array( 
                            
"regexp" => '/^[a-zA-Zа-яА-Я0-9._ -]+$/'
                            ), 
);  

$filterget filter_input_array (INPUT_GET$getforfilter); 

$getName_sql 'SELECT * FROM USER  
      WHERE name LIKE "%' 
$filterget['searchq'].'%"'
$getName mysql_query($getTask_sql);  
$total =  mysql_num_rows(getTask);  

while (
$row mysql_fetch_array($getName)) {  
echo 
$row.name '<br/>';  
}  
?>

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); 


Отправлено: 17:16, 16-06-2009

 

Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Ну и? Какие ошибки выдаёт и в каком файле?
На первый взгляд - не хватает одинарной кавычки и точки с запятой после строки WHERE name LIKE "%' . $searchq .'%"
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:22, 17-06-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


PHP код: Выделить весь код

<?php 

include('config.php'); 
#$searchq  = $_GET['name'];
$getforfilter = array
(                                  
      
'searchq'        => array (
                            
"filter"     => FILTER_VALIDATE_REGEXP,
                            
"options"      => array(
                            
"regexp" => '/^[a-zA-Zа-яА-Я0-9._ -]+$/')
                            ),
); 

$filterget filter_input_array (INPUT_GET$getforfilter);

$getName_sql 'SELECT * FROM USER 
      WHERE name LIKE "%' 
$filterget['searchq'].'%"';
$getName mysql_query($getTask_sql); 
$total =  mysql_num_rows(getTask); 

while (
$row mysql_fetch_array($getName)) { 
echo 
$row.name '<br/>'

?>

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

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:30, 17-06-2009 | #3


Пользователь


Сообщения: 91
Благодарности: 2

Профиль | Отправить PM | Цитировать


Ошибки в фале 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.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:05, 17-06-2009 | #4


Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


'Task' везде замените на 'Name'
Цитата darksmoke:
$total = mysql_num_rows(getTask); »
тут параметр дб переменная ($getName) (сайчас некая константа)
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:15, 17-06-2009 | #5


Пользователь


Сообщения: 91
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Sham:
'Task' везде замените на 'Name' »
Заменил, ошибки все равно есть.

Код: Выделить весь код
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)) { 


Это сообщение посчитали полезным следующие участники:

Отправлено: 18:48, 17-06-2009 | #6


Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


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 '<br/>';  


Цитата 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); »
не понятно зачем две последние строки, нужно оставить только две
PHP код: Выделить весь код

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

$connection_string=mysql_select_db($db_name$db_con); 

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:23, 17-06-2009 | #7


Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


!!!
Писать надо самому, а не разбиратся в чужом ... , причём неграмотном коде.
И писать проверки. Через тот же самый echo, print_r, dump & etc.
А то получается, что запрос присваивается $getName_sql, а к базе отправляется mysql_query($getTask_sql)...

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4


Отправлено: 20:15, 25-06-2009 | #8



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Ajax поиск

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
AJAX вопрос от чайника vovan4ik Вебмастеру 10 14-09-2009 09:35
Нужен самый лучший ajax framework!!! tolbol Вебмастеру 5 30-05-2008 20:05
Ajax & PHP Костэн Вебмастеру 7 20-04-2008 13:35
Вопрос по Ajax Fenrizz Вебмастеру 2 31-10-2007 18:37
AJAX - интернет эксплорер виснет VeshchiyOleg Вебмастеру 19 17-08-2006 14:12




 
Переход