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
Да. Значение поля name не передается. Только почему...не знаю как его объявить, чтобы корректно передалось в www.php

Спустя 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?

Спустя 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
)
Я понял. Спс.(Не обратил внимание на this
