2015-12-10 2 views
0

Я пытался выяснить, почему $_POST не поймал никаких полей ввода в моей контактной форме html.

Я отсортирован это после многих часов, и я пришел к выводу, что из-за моего form, имеющего class из "contact-form"

Пример в этом будет работы:

<form id="main-contact-form" name="contact-form" method="post" action="sendemail.php" role="form">       
    <input type="text" name="name" class="form-control" required="required" placeholder="Name">          
</form> 

выход: $_POST['name']; // This successfully catch the value

этот wint: `

<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form">       
    <input type="text" name="name" class="form-control" required="required" placeholder="Name">          
</form> 

выход: $_POST['name']; // This doesnot catch the value

JS:

var form = $('.contact-form'); 
form.submit(function() { 
    $this = $(this); 
    $.post($(this).attr('action'), function(data) { 
     $this.prev().text(data.message).fadeIn().delay(3000).fadeOut(); 
    },'json'); 
    return false; 
}); 

Почему это?

+0

Есть ли в вашем файле javascripts? – Thamilan

+0

У вас есть javascript-код, обязательный для '.contact-form'? – Sean

+0

Это проблема с клиентами. Как вы представляете? С данными полезной нагрузки? Проверьте опубликованные значения на вашей вкладке в сети (панель разработчика) – schellingerht

ответ

0

Замените JS фрагмент с этим:

<script> 
var form = $('.contact-form'); 
form.submit(function() { 
    $this = $(this); 
    $.post($(this).attr('action'),{ name: $('input[name=name]').val() }, function(data) { 
     $this.prev().text(data.message).fadeIn().delay(3000).fadeOut(); 
    },'json'); 
    return false; 
}); 
</script> 

Вы должны указать мимолетные параметры!

Вы можете использовать это:

$.post($(this).attr('action'),$(this).serialize(), function(data) {... 

поместить все элементы формы.

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