сериализация и отправка формы с помощью jQuery POST и php

Я пытаюсь отправить данные формы с помощью jQuery. Однако данные не доходят до сервера. Не могли бы вы рассказать мне, что я делаю неправильно?

// FORM <form id="contactForm" name="contactForm" method="post"> <input type="text" name="nume" size="40" placeholder="Nume"> <input type="text" name="telefon" size="40" placeholder="Telefon"> <input type="text" name="email" size="40" placeholder="Email"> <textarea name="comentarii" cols="36" rows="5" placeholder="Message"> </textarea> <input id="submitBtn" type="submit" name="submit" value="Trimite"> </form> 

Javascript:

  Javascript Code in the same page as the form: <script type="text/javascript"> $(document).ready(function(e) { $("#contactForm").submit(function() { $.post("getcontact.php", $("#contactForm").serialize()) //Serialize looks good name=textInNameInput&&telefon=textInPhoneInput---etc .done(function(data) { if (data.trim().length >0) { $("#sent").text("Error"); } else { $("#sent").text("Success"); } }); return false; }) }); </script> 

И серверная сторона:

  /getcontact.php $nume=$_REQUEST["nume"]; // $nume contains no data. Also tried $_POST $email=$_REQUEST["email"]; $telefon=$_REQUEST["telefon"]; $comentarii=$_REQUEST["comentarii"]; 

Не могли бы вы рассказать мне, что я делаю неправильно?

EDIT: проверено var_dump($_POST) и он возвращает пустой массив.

Странно, что тот же самый код, проверенный на моей локальной машине, отлично работает. Если я загружу файлы на своем хостинговом пространстве, он перестает работать.
Я попытался сделать старомодную форму без использования jquery, и все данные верны.

Я не вижу, как это будет проблемой конфигурации сервера. Есть идеи?

Спасибо!

Related of "сериализация и отправка формы с помощью jQuery POST и php"

Вы можете использовать эту функцию

 var datastring = $("#contactForm").serialize(); $.ajax({ type: "POST", url: "your url.php", data: datastring, dataType: "json", success: function(data) { //var obj = jQuery.parseJSON(data); if the dataType is not specified as json uncomment this // do what ever you want with the server response }, error: function() { alert('error handing here'); } }); 

Тип возврата – json

EDIT: я использую event.preventDefault для предотвращения event.preventDefault браузера в таких сценариях.

Вы можете добавить дополнительные данные с данными формы

используйте serializeArray и добавьте дополнительные данные:

 var data = $('#myForm').serializeArray(); data.push({name: 'tienn2t', value: 'love'}); $.ajax({ type: "POST", url: "your url.php", data: data, dataType: "json", success: function(data) { //var obj = jQuery.parseJSON(data); if the dataType is not specified as json uncomment this // do what ever you want with the server response }, error: function() { alert('error handing here'); } }); 

Вы проверили консоль, если данные из формы правильно сериализованы? Успешен ли запрос ajax? Также вы не закрыли цитату-заполнитель, что может вызвать некоторые проблемы:

  <textarea name="comentarii" cols="36" rows="5" placeholder="Message> 

Вы смотрели в firebug, если POST или GET ?.

проверьте дисплей консоли.

Поместите тестовый скрипт:

 console.log(data); 

Вы можете увидеть ответ с сервера, если он что-то показывает.

Проблема может быть в конфигурации PHP:

Проверьте файл max_input_vars в файле php.ini.

Попробуйте увеличить значение этого параметра до 5000 в качестве примера.

 max_input_vars = 5000 

Затем перезапустите веб-сервер и попробуйте.

См. Ответ из предыдущего сообщения. Чем вы можете использовать .post () или .get () для отправки сериализованных данных на сервер.

Преобразование данных формы в объект JavaScript с помощью jQuery

Во всяком случае, это очень запутывает вашу ситуацию, вызванную этим недостатком деталей.

Если вы используете веб-сервер (нелокальный), этот код может быть неправильным, если вы забудете настроить фактическую ссылку jquery. Я не знаю, даже если вы ссылаетесь на jquery на абсолютный путь или относительный путь !?

  $("#contactForm").submit(function() { $.post(url, $.param($(this).serializeArray()), function(data) { }); }); 

Регистрация двух участников или пользователей, автоматически зарегистрированных «Shouttoday» ajax, когда они завершают регистрацию по форме.

 var deffered = $.ajax({ url:"code.shouttoday.com/ajax_registration", type:"POST", data: $('form').serialize() }); $(function(){ var form; $('form').submit( function(event) { var formId = $(this).attr("id"); form = this; event.preventDefault(); deffered.done(function(response){ alert($('form').serializeArray());alert(response); alert("success"); alert('Submitting'); form.submit(); }) .error(function(){ alert(JSON.stringify($('form').serializeArray()).toString()); alert("error"); form.submit(); }); }); });