Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Ajax response (https://javascript.ru/forum/dom-window/38398-ajax-response.html)

dianitka 30.05.2013 16:35

Ajax response
 
Здравствуйте. Прошу вашей помощи. Есть простая форма, где есть поля - имя, емейл, телефон. Нужно обработать эту форму без перезагрузки в файле subscribe.php. В нем происходит запись в БД данных с формы. Если в БД уже существует пользователь под таким имейлом, то должно выводится соответствующее сообщение для пользователя.

Вот ajax
var options = {
url: "subscribe.php",
type:'POST',
success: function (data){
   $("#subscribe").clearForm();
alert(data);
}};

$("#subscribe").validate({submitHandler: function() {$('#subscribe').ajaxSubmit(options);},focusInvalid: false,focusCleanup: true,
   rules: {email:{required: true,email: true},},
   messages:{email:{required: "поле не заполнено",email: "некорректный email"},},

}});



Как мне получить из subscribe.php данные о том, есть ли человек с таким имейлом в БД?

Сейчас при alert-е выводится html страницы. Я примерно думаю, что это через json

if(is_in_bd){
     $result='есть';
    echo json_encode($result);
   }

  else{
    $result='нет';
    echo json_encode($result);
  }


Как теперь получить эти данные в ajax-запросе?

elnoro 30.05.2013 23:23

Не совсем так, json_encode здесь ни к селу, ни к городу). Она преобразует массивы PHP в json, а здесь не массив, а простая переменная.

В этом случае надо просто выводить переменную:
echo ($is_in_bd) ? '1' : '0'

или даже (зависит от типа переменной, если эта пустая строка, то лучше не надо, хотя тоже можно проверять):
echo $is_in_bd;


А в option.success соответственно проверять if (data === '0') и т. д.


Часовой пояс GMT +3, время: 22:45.