2014-09-25 4 views
0

У меня проблема, когда мой код Ajax не проходит. Как будто функции пустые. я нажал представить, ничего не происходит ..Кнопка AJAX не отправляется и не проходит

Мой HTML-код:

<head> 

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script> 
<body> 
<form method="POST" id="contactForm" > 
<input type="text" name="email" id="email"></input> 
<input type="submit" name="submit"></input> 

</form> 
<script type="text/javascript"> 
$('#contactForm').submit(function(e){ 
    e.preventDefault(); 
    var email = $('#email').val(); 
    $.ajax({ 
     type: 'POST', 
     dataType: 'JSON', 
     url: 'check.php', 
     data: {email: email}, 
     success: function(data){ 
      if(data.status == 'success') { 
       alert('The e-mail address entered is correct.'); 
      } else { 
       alert('The e-mail address entered is Incorrect.'); 
      } 
     } 
    }); 
}); 
</script> 
</body> 
</head> 

Мой check.php:

<?php 

if (isset($_POST['email'])) { 
    $status = 'success' 
} else { 
    $status = 'failed'; 
} 

echo json_encode(array('status' => $status)); 

?> 

Когда я нажмите на кнопку отправить, он просто ничего не делать .. я хочу ошибка всплывает.

Есть ли что-нибудь, что я пропустил?

+0

Потому что есть ошибка сценария, вызванная недопустимым закрытием. Проверьте скобки после 'else if', который является неправильным, и обратный вызов« success »отсутствует.': ' –

+1

name =" submit "- нет. – wwwmarty

+0

@MartyMcKeever, тогда, если я хочу вызвать isset post, мне это понадобится? нет? – JayVicious

ответ

1

Убедитесь, что все параметры, которые вы передаете в вызов ajax, должным образом обведены. Пример: datatype должен стать dataType, и, следовательно, необходимо, чтобы он стал до отправки.

Вот ссылка: http://api.jquery.com/jquery.ajax/

+0

Но если я хочу вызвать функцию из php, а затем отправить в ajax для отправки, используйте тип данных, потому что я прочитал еще один stackoverflow, если json подходит для использования функции get – JayVicious

+0

Я только ссылался на ваш недостаток в заглавной буквы, капитализироваться. тип данных, просто необходимый для создания капитала T, чтобы он был dataType. – 3abqari

+0

Когда я изменил значение, оно фактически ничего не делает, вернемся к уровню 1.. но когда я перехожу к типу данных, он работает. – JayVicious

1

Кронштейны неуместны и вам не хватает : для «успеха» обратного вызова. См фиксированный код ниже,

И дело тоже, как упоминалось в другой ответ здесь ..

$('#contactForm').submit(function() { 
    var email = $('#email').val(); 
    $.ajax({ 
     type: 'GET', 
     dataType: 'json', 
     url: 'check.php', 
     beforeSend: function() {}, 
     //  v--- missing : 
     success: function (data) { 
      if (data.status == 'success') { 
       alert('The e-mail address entered is correct.'); 
      } else if (data.status !== 'success') { 
       alert('The e-mail address entered is wrong.'); 
      } 
     } // this was misplaced in the line below in your code 
    }); // this was misplaced in the line above in your code 
}); 
+0

Спасибо, что действительно исправить это, но теперь все возвращает меня, если тип данных не является успешным a.k.a введенный адрес электронной почты является неправильным .. Я ставлю пустой и с цифрами также возвращает мне это значение. – JayVicious

+0

Теперь на самом деле ничего не происходит с изменением типа данных на dataType – JayVicious

0

Попробуйте отлаживать с помощью Dev инструментов Firefox или Chrome.

На Devtools Chrome для примера:

  • Debug Javascript с параметром источника. Или вы добавили console.log() в свою функцию .submit(), чтобы убедиться, что обработчик событий запускается.
  • Используйте network tab, чтобы убедиться, что вызов ajax выполняется и проверьте, какой ответ вы получаете от сервера.
  • Последнее, что не менее важно, проверьте ошибки console tab на наличие ошибок Javascript, чтобы узнать, не выдает ли еще один скрипт ошибку перед исключением вашего скрипта.

С помощью этих методов вы можете определить, что может быть неправильным, и посмотреть, как это можно решить.

+0

Теперь он работает для меня, но быстрый вопрос .. почему я продолжаю иметь два всплывающих окна с тем же сообщением? – JayVicious

+0

Возможно, что по какой-то причине alert() вызывается дважды, попробуйте добавить «консольный журнал (« called »); функцию для проверки. Если это произойдет, вы увидите 2 сообщения на консоли DevTools. – gerzenstl

Смежные вопросы