2013-09-30 4 views
0

У меня простая контактная форма на contact.php, но, отправив ее, в файл php (mail.php) нет никаких данных.Контактная форма не отправляет данные

образуют внутри contact.php

<form id="contact" action="" method="post"> 
<input id="name" type="text" name="name" width="250" size="35" placeholder="Your name"> 
<br><br> 
<input id="email" type="text" name="email" width="250" size="35" placeholder="Your mail"> 
<br><br> 
<textarea id="message" name="message" rows="6" cols="40" placeholder="Your message"></textarea> 
<br><br> 
<input type="button" value=" SEND " id="submit" /> 
<input type="reset" value="Reset" name="reset"> 
</form> 

JS внутри contact.php

$('#submit').click(function(){ 
$.post("mail.php", $("#contact").serialize(), function(response) { 
$('#success').html(response); 
}); 
return false; 
}); 

Mail.php

print_r($_POST); 
    if((empty($_POST['name'])) || (empty($_POST['email'])) || (empty($_POST['message']))){ 
    die("All fields must be filled !"); 
    } 

Результат:
Array () All fields must be filled !

+0

Какие данные посылают на сервер? Для определения этого – Kippie

+0

@ Kippie используйте Fiddler или вкладку вашей любимой утилиты отладки браузера, я проверил с помощью firebug. Вкладка «Post» пуста, на вкладке «Ответ» есть содержимое ответа в качестве результата в моем сообщении, т. Е. 'Array(). Все поля должны быть заполнены!' – bonaca

+0

@SunSky Правильно ли указаны ваши поля ввода? То есть '' и т. д. –

ответ

1

Это работа для меня.

Это a.html файл

<!doctype html> 
    <html lang="en"> 
    <head> 
     <meta charset="UTF-8"> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 
     <script type="text/javascript"> 
     $(function(){ 
      $('#submit').click(function(){ 
       $.post("x.php", $("#contact").serialize(), function(response) { 
        $('#success').html(response); 
       }); 

      }); 
     }); 

     </script> 
    </head> 
    <body> 
     <form id="contact" action="" method="post"> 
      <input id="name" type="text" name="name" width="250" size="35" placeholder="Your name"> 
      <br><br> 
      <input id="email" type="text" name="email" width="250" size="35" placeholder="Your mail"> 
      <br><br> 
      <textarea id="message" name="message" rows="6" cols="40" placeholder="Your message"></textarea> 
      <br><br> 
      <input type="button" value=" SEND " id="submit" /> 
      <input type="reset" value="Reset" name="reset"> 
     </form> 
    </body> 
    </html> 

Это x.php файл

<?php 
     print_r($_POST); 
     if((empty($_POST['name'])) || (empty($_POST['email'])) || (empty($_POST['message']))){ 
     die("All fields must be filled !"); 
     } 
    ?> 
+0

Dalim, ваш код работает. Спасибо. Не могли бы вы проверить, пожалуйста, что не так с моим кодом? – bonaca

+2

Тот же ответ с Jenson M John's. Вы должны использовать $ (function() {\\ jquery codes ...}) pattern –

-1

Попробуйте, будет препятствовать вашей формы естественно представить:

$('#submit').click(function(e){ 
    e.preventDefault(); 
}); 

Еще одно изменение, которое вы можете попробовать это:

$("#contact").serializeArray() 
2

Рабочий пример:

<html> 
     <head> 
      <title>Example</title> 
     <style type="text/css"> 
     div { color:blue; margin:3px; cursor:pointer; } 
     </style> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script> 
     <script type="text/javascript"> 
     $(document).ready(function() { 
     $('#submit').click(function(e){ 
     $.post("mail.php", $("#contact").serialize(), function(response) { 
     $('#success').html(response); 
     }); 
     return false; 
     }); 
     }); 
     </script> 
     </head> 
     <body> 
     <div id="success"></div> 
      <form name="contact" id="contact" method="post"> 
      <?php 
       for($i=1;$i<=10;$i++) 
       {?> 
       Text Box <?php echo $i; ?>&nbsp;<input type="text" name="in<?php echo $i; ?>"/><br/><br/> 
       <?php 
       } 
      ?> 
      <input type="submit" name="submit" id="submit"/> 
      </form> 

     </body> 
    </html> 

mail.php

<?php 
    print_r($_POST); 
    if((empty($_POST['name'])) || (empty($_POST['email'])) || (empty($_POST['message']))){ 
    die("All fields must be filled !"); 
    } 
    ?> 
+1

Спасибо, Jenson, ti, кажется, решил – bonaca

+1

Вы должны были включить свой js-код в $ (document) .ready (function() {или $ (function() { –

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