проверка поля формы.
1.
Николай (04.02.2013 / 16:58)
Допустим есть форма. в форме поле name. мне надо проверить данные с БД.
т.е. юзер ввел данные (он тут же проверяет если ли такой юзер в бд если есть выдает ошибку) и на лету рядом с полем выдается ошибка.
буду очень благодарен
2.
Виталий (04.02.2013 / 17:02)
jQuery или другая библиотека стоят?
3.
Николай (04.02.2013 / 17:05)
2.
free, jQuery стоит
4.
Виталий (04.02.2013 / 17:07)
сейчас попробую объяснить... ожидай =)
Добавлено через 05:22 сек.
есть поле
<input type = "text" name = "name" id = "input_name" />
где то рядом с ним размещаем:
<font id = "check_status" style = "display: none;"></font>
и переходим к самому скрипту:
<script>
function login_check(){
var element_status = $("font#check_status");
var input_name = $("#input_name");
$.get('./check.php');
}
</script>
5.
Николай (04.02.2013 / 17:17)
4.
free, а дальше как?)
6.
Виталий (04.02.2013 / 17:22)
это к js вместо того, что описан выше
<script>
function login_check(){
var element_status = $("font#check_status");
var input_name = $("#input_name");
$.get('./check.php?login=' + input_name, function (data){
if (data=='true')
{
element_status.text('Не занято');
} else if {data=='false')
{
element_status.text('Занято');
} else {
element_status.text('Неизвестная ошибка');
}
element_status.fadeIn('fast');
});
}
</script>
Добавлено через 07:03 сек.
и файл check.php
<?php
//тут подключение к БД
$result = mysql_query ("SELECT * FROM `
users` WHERE (`name` = '".$_GET['login']."');");
if (mysql_num_rows ($result) > 0) { print 'true'; } else { print 'false'; }
?>
7.
Виталий (04.02.2013 / 17:33)
и потом к полю просто дописать параметр onchange="login_check()" и все. думаю разберешься...
правда код сырой очень! переменную $_GET['login'] нужно как то проверять. Да и передавать результат в виде json в месте с номером / описанием ошибки если таковая возникнет было бы хорошим тоном.
8.
Николай (04.02.2013 / 17:45)
7.
free, что то не получается.....
9.
Виталий (04.02.2013 / 17:48)
блиин... попробуй зайти на http://
твой_сайт/check.php?login=
какойнибудьлогинизБД
10.
Николай (04.02.2013 / 17:50)
9.
free,
норм работает. а вот форма нифига не фурычит
11.
Андрюха (04.02.2013 / 17:56)
Потому что не $_GET, a $_POST
12.
Николай (04.02.2013 / 18:02)
11.
Wapruks, все равно ничего не пойму
13.
Андрюха (04.02.2013 / 18:24)
Я с JS не знаком, но так понимаю тебе free написал код для $_GET, а форма у тебя наверняка через $_POST данные передает
<?php
//тут подключение к БД
$result = mysql_query ("SELECT * FROM `users` WHERE (`name` = '".$_POST['login']."');");
if (mysql_num_rows ($result) > 0) { print 'true'; } else { print 'false'; }
?>
Так попробуй
14.
Николай (04.02.2013 / 18:56)
13.
Wapruks, а причем тут пост, мы же данные JSом посылает по гету...
15.
Виталий (04.02.2013 / 19:21)
10.
Trance Mission, какой у тебя браузер?
16.
Виталий (04.02.2013 / 19:32)
http://upwap.ru/3000865 pass: 1111
17.
Кевин Митник (04.02.2013 / 21:31)
ТС, вот алгоритм. Сам если пишешь - сможешь разобрать.
1. У тебя есть фронтенд(страница, на которой нужно осуществить проверку и вывести результат) и бэкенд(скрипт, который обработает полученные данные и возвратит результат).
2. Когда страница загружена, вешаем слушатель событий на DOM-объект, по клику на который и будет осуществляться проверка.
3. В коде слушателя создаем переменную, которая имеет значение name. Создаем AJAX-запрос, в котором методом POST отправляет бэкенду наш name.
4. Скрипт получает данные из POST, коннект к БД, проверка, если есть совпадение - TRUE, нет -FALSE. Причем нужно отправить эти результаты в вывод, так как они нам нужны дальше.
5. В массиве отправки AJAX-запрса в jQuery есть параметр success - который принимает в себя как параметр функцию. А функция - ответ сервера при ответе 200.
6. Проверяем на клиентской стороне результат - если FALSE, то ошибка, TRUE - все ок)
Пиши что не понятно)
18.
Николай (04.02.2013 / 21:50)
15.
free, оперка
19.
Виталий (04.02.2013 / 21:51)
17.
Кевин Митник_HHTeam, я архив ему кинул там рабочий под его нужды код.
только ему нужно не по клику а режиме анриал т.е уже слушаем событие onchange.
Добавлено через 01:23 сек.
18.
Trance Mission, архив качай.. у меня пару ошибок было в том коде что я отправлял в скобках вместо ( был { и еще что то... пример был с колена, нисал на работе пока шеф не видит!
20.
Кевин Митник (05.02.2013 / 01:30)
#19, режиме онлайн, наверное) Да. затупил толком прочитать первый пост)
21.
Станислав (05.02.2013 / 07:09)
http://visavi.net/blog/blog.php?act=view&id=132&
URL:
https://visavi.net/topics/36568