Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Живой вывод ошибок при неверно заполненных формах
Форумы портала PHP.SU » » Вопросы новичков » Живой вывод ошибок при неверно заполненных формах

Страниц (1): [1]
 

1. teddy - 04 Августа, 2013 - 14:21:57 - перейти к сообщению
Здравствуйте. Скажите пожалуйста, каким образом можно реализовать живой вывод ошибок при неверно заполненных формах? Объясню конкретнее:

Есть у нас допустим некие формы для заполнения, предположим, что это скрипт регистрации пользователей. Если пользователь ввел логин, который уже существует, то нужно без перезагрузки страницы сообщить ему, что такой логин уже зарегистрирован. Как реализовать это на сервере и получить ответ без перезагрузки страницы я знаю, но тут один скользкий момент:

Я могу получить ответ от сервера только одним текстом, то есть получить obj.responseText и вывести его в какой нибудь DIV для ошибок. Но мне нужно сообщать об ошибке около каждого инпута. Например если логин уже существует, то рядом с инпутом, где вводится логин, вывести соответствующую ошибку. Как разбить на части результат ответа сервера и реализовать то, что я хочу? Чую мне нужен JSON, но увы не очень понимаю как его использовать...

Надеюсь я все доступно описал, просьба пнуть в нужном направлении, а ещё лучше какой нибудь пример привести ) Заранее спасибо
2. soffrick - 04 Августа, 2013 - 14:44:40 - перейти к сообщению
teddy пишет:
мне нужен JSON, но увы не очень понимаю как его использовать...

json.parse


столько вопросов(4) по одному AJAX, мда...
Спойлер (Отобразить)
3. teddy - 04 Августа, 2013 - 14:47:33 - перейти к сообщению
Слушай, у тебя проблемы? Ты один день нормальный, а другой *тут слово за которое могут забанить*

soffrick пишет:
json.parse

Ответ из разряда:

Вопрос: "Дядя, а что такое интерпретатор?"
Ответ: "Это то, что интерпретирует"

Вообщем не можешь помочь толком - не лезь плз... А выкидоны твои мне здесь не нужны ровно также как и оценка моих знаний
4. soffrick - 04 Августа, 2013 - 14:54:30 - перейти к сообщению
teddy пишет:
json.parse

Ответ из разряда:

Вопрос: "Дядя, а что такое интерпретатор?"
Ответ: "Это то, что интерпретирует"

Вообщем не можешь помочь толком - не лезь

не осилил метод parse? в гугле забанили?
teddy пишет:
Ты один день нормальный, а другой *тут слово за которое могут забанить*

так ты не задавай глупые вопросы
(Добавление)
teddy пишет:
Вообщем не можешь помочь толком - не лезь

не можешь понять программирование - не лезь. Всё не запомнишь, нужно понимать
5. teddy - 04 Августа, 2013 - 15:00:28 - перейти к сообщению
soffrick
Здесь нет глупых вопросов. Для тех кто знает всегда кажется что всё просто. Это я по себе знаю. Раньше то что не понимал в упор сейчас для меня это просто а для некоторых это целая наука и так было фактически у всех, так что не надо мне тут.

Давай я сам буду решать куда мне лезть а куда нет ок?

Не нравлюсь - иди лесом. Не порть мне тему, не пиши сюда больше и вообще в те темы, где есть я. А если пишешь, не связывай свои сообщения каким либо образом со мной.

Вообщем есть вопросы - есть личка. Всё, удались отсюда. Уверен даже ты не знаешь грамотного решения моего вопроса. Ибо написал бы сразу и подробно(заметил за тобой такое, что если знаешь пишешь подробно, а если нет - тупо делаешь вид что знаешь но не помогаешь)
6. soffrick - 04 Августа, 2013 - 15:15:15 - перейти к сообщению
teddy пишет:
Уверен даже ты не знаешь грамотного решения моего вопроса. Ибо написал бы сразу и подробно(заметил за тобой такое, что если знаешь пишешь подробно, а если нет - тупо делаешь вид что знаешь но не помогаешь)

знаю
teddy пишет:
Ибо написал бы сразу и подробно(заметил за тобой такое, что если знаешь пишешь подробно

подробно - жирно будет
teddy пишет:
тупо делаешь вид что знаешь но не помогаешь)

вообще-то я не ты, чтобы лезть туда где не разбираюсь вообще или очень плохо
PHP:
скопировать код в буфер обмена
  1. $data = array(
  2.         "login" => "Занят",
  3.         "password" => "Короткий",
  4.         "email" => "Не корректен"
  5. );
  6. echo json_encode($data);

CODE (javascript):
скопировать код в буфер обмена
  1.                   var data = JSON.parse(xmlhttp.responseText);
  2.           for(val in data)
  3.                   {
  4.                         console.log(data[val] + "=" + val);
  5.                         document.getElementById("valid-"+val).innerHTML = data[val];
  6.                   }

CODE (html):
скопировать код в буфер обмена
  1.    <p>
  2. login<input type="text" id="login" value="qwe"/>
  3. <span id="valid-login"></span>
  4. </p>
  5.  
  6.    <p>
  7. password<input type="text" id="password" value="qwe"/>
  8. <span id="valid-password"></span>
  9. </p>
  10.  
  11.    <p>
  12. email<input type="text" id="email" value="qwe"/>
  13. <span id="valid-email"></span>
  14. </p>
  15.  
  16.    <input type="button" onclick="validate_Ajax()">

(Добавление)
teddy пишет:
Здесь нет глупых вопросов

дану ты брось

плохо залазить сначала на форум[, а потом на гугл] ([] - значит необязательно)

Цитата:
Давай я сам буду решать куда мне лезть а куда нет ок?

да без проблем, просто предупредил. может ты просто за зп гонишься?? как X-TRAIL
(Добавление)
teddy пишет:
soffrick пишет:
json.parse

Ответ из разряда:

Вопрос: "Дядя, а что такое интерпретатор?"
Ответ: "Это то, что интерпретирует"

ай ну ты индус, json.parse тебе не нравится (не кроссбраузерный), eval тебе тоже не угодил. тогда юзай магию грузчика Здорово
7. DelphinPRO - 04 Августа, 2013 - 16:05:46 - перейти к сообщению
Проверка логина.
Отправлешь ajax запрос на сервер, в ответ получаешь единственное число в responseText - 1-логин занят, 2-логин свободен. Больше тебе просто не нужно. Запрос вешаешь на onchange или onblur.
Для проверки e-mail таже отправляешь запрос, и также получаешь статус в ответ.
Чтобы на сервер знать что именно проверяется в данный момент, отправляй доп параметр с именем поля.

Это будет реально "живая форма".

Что тебе еще там нужно проверять в live режиме?
(Добавление)

Хотелось бы посоветовать пользователю soffrick быть более сдержанным

(Добавление)
Если все же хочется проверять на сервере форму целиком, то jQuery предоставляет кроссбраузерные методе $.parseJSON() и $.toJSON().
8. teddy - 04 Августа, 2013 - 16:16:03 - перейти к сообщению
DelphinPRO
Спасибо, интересная идея Улыбка Я попробую так сделать... А по поводу jQuery $.parseJSON(); я уже в процессе обучения ) Благодарю за доступный ответ!

 

Powered by ExBB FM 1.0 RC1