проверка поля формы.

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, архив качай.. у меня пару ошибок было в том коде что я отправлял в скобках вместо ( был { и еще что то... пример был с колена, нисал на работе пока шеф не видит! E

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