使用jQuery POST和php序列化和提交表单

前端之家收集整理的这篇文章主要介绍了使用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"];

你能告诉我我做错了什么吗?

编辑:
检查了var_dump($ _ POST),并返回一个空数组。

奇怪的是,在本地机器上测试的相同代码工作正常。
如果我将文件上传到我的主机空间,它将停止工作。
我尝试做一个老式的表单,而不使用jquery,所有的数据是正确的。

我看不出这将是一个服务器配置问题。有任何想法吗?

谢谢!

解决方法

您可以使用此功能
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

编辑:我使用event.preventDefault防止浏览器在这种情况下提交。

猜你在找的jQuery相关文章