[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: AJAX класс, проблема
Alex2356
Доброго дня. Не могу понять, почему не работает. :unsure:

index.php

<script src="ajax.class.v1.5.js"></script>
<
script type="text/javascript">
function ge(id) {
return document.getElementById(id);
}
function SendData() {
var AJAX = new AjaxRequest('www.php');
AJAX.OnLoad(myOnLoad);
AJAX.OnComplete(myOnComplete);
var data = {
'name': name.value
}

AJAX.Post(data); // выполняем запрос
return false; // форму не сабмитим
}

function myOnLoad() {
ge('result').innerHTML = 'Загрузка...';
}

function myOnComplete(result) {
ge('result').innerHTML = result;
}
</script>
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<
title>Документ без названия</title>
</
head>

<
body>
<
input onKeyUp="return SendData()" type="text" name="name" />
<
div id="result"></div>
</
body>
</
html>


www.php

header('Content-type: text/plain; charset=windows-1251');
// Ф-я соединения с БД
function db($b,$u,$p){
$db = mysql_connect ('localhost',$u,$p);
mysql_select_db($b,$db);
mysql_query('SET NAMES cp1251',$db);
mysql_query('SET CHARACTER SET cp1251',$db);
mysql_query('SET COLLATION_CONNECTION="cp1251_general_ci"',$db);
date_default_timezone_set('Europe/Moscow');
}

db('examlpe','root','');

$pass = mysql_real_escape_string( $_POST[ 'name' ] ) ;

$r = mysql_query( "SELECT * FROM tbl WHERE id = '{$pass}'" );
$res = mysql_fetch_assoc(mysql_query( "SELECT * FROM tbl WHERE id = '{$pass}'" ));


if( mysql_num_rows( $r ) == 1 ) {
echo $res['name'];}
else{
echo 'Ошибка';
}


Выдает Ошибка. Хотя при вводе 1 или 2 должен выдавать имя с ид=1 или ид=2



Спустя 11 часов, 28 минут, 41 секунда (27.01.2011 - 23:13) kirik написал(а):
Цитата (Alex2356 @ 27.01.2011 - 03:44)
Выдает Ошибка. Хотя при вводе 1 или 2 должен выдавать имя с ид=1 или ид=2

Вы пробовали отдебажить?
Мне так кажется что просто id не передаётся, так как обращение к полю не верное (я про "'name': name.value").

ЗЫ.
скрипты обычно находятся в head а не перед доктайпом..

Спустя 19 часов, 14 минут, 47 секунд (28.01.2011 - 18:28) Alex2356 написал(а):
kirik
Да. Значение поля name не передается. Только почему...не знаю как его объявить, чтобы корректно передалось в www.php huh.gif

Спустя 8 часов, 31 минута, 46 секунд (29.01.2011 - 02:59) kirik написал(а):
Цитата (Alex2356 @ 28.01.2011 - 10:28)
Только почему...не знаю как его объявить, чтобы корректно передалось в www.php

Как вариант сделать так:

<input onKeyUp="return SendData(this)" type="text" name="name" />

и
function SendData(text) {
var AJAX = new AjaxRequest('www.php');
AJAX.OnLoad(myOnLoad);
AJAX.OnComplete(myOnComplete);
var data = {
'name': text.value
}

AJAX.Post(data); // выполняем запрос
return false; // форму не сабмитим
}

Спустя 6 часов, 31 минута, 58 секунд (29.01.2011 - 09:31) Alex2356 написал(а):
Цитата
'name': text.value

Т.е. здесь мы выбираем текстовое поле с именем name

Или объявляем переменную name для поля text.value? huh.gif

Спустя 2 часа, 26 минут, 53 секунды (29.01.2011 - 11:58) kirik написал(а):
Цитата (Alex2356 @ 29.01.2011 - 01:31)
Т.е. здесь мы выбираем текстовое поле с именем name

Или объявляем переменную name для поля text.value?

Сори.. это оффтопик и не относится к классу никак, однако отвечу (потом все посты придется удалить).
Здесь мы задаем свойство объекта с именем name и значением, которое берется из нашего текстового поля. В функцию передается this - тоесть ссылка на объект (наше текстовое поле), в переменной принимается этот параметр с названием text. Ну и потом мы просто забираем свойство объекта text (которым является наше поле) под названием value (которое содержит текст, напечатанный в поле).

Спустя 2 часа, 41 минута, 6 секунд (29.01.2011 - 14:39) Alex2356 написал(а):
kirik
Я понял. Спс.(Не обратил внимание на this wink.gif )
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.