2012-01-17 63 views
6

我已经发送数据到我的jQuery的文件,我测试的数据串,一切都存储在哪里它应该是,但是当我发布到我的PHP文件中的所有变量都为空。有人能帮我吗?提交从jQuery来PHP

$(document).ready(function() { 
    $(".button").click(function() { 
    //$('.error').hide(); 
    var firstname = $("input#First_Name").val(); 
    var lastname = $("input#Last").val(); 
    var areacode = $("input#area_code").val(); 
    var phonenumber = $("input#Phone_Number").val(); 
    var emailaddress = $("input#emailaddress").val(); 
    var confirmemail = $("input#confirm_email").val(); 
    var password = $("input#Password_Input").val(); 
    var confirmpassword = $("input#ConfirmPassword").val(); 
    var streetaddress = $("input#StreetAddress_input").val(); 
    var streetaddress2 = $("input#StreetAddress2_input").val(); 
    var city = $("input#City_Input").val(); 
    var state = $("input#StateInput").val(); 
    var zipcode = $("input#ZipCode").val(); 
    var month = $("input#month_input").val(); 
    var day = $("input#day_input").val(); 
    var year = $("input#year_input").val(); 
    var services = $("input#services_input").val(); 
    var agreement = $("input#agreement").val(); 

    var dataString = 'firstname=' + firstname + '&lastname=' + lastname + '&areacode=' + areacode + '&phonenumber=' + phonenumber + '&emailaddress=' + emailaddress + '&confirmemail=' + confirmemail + '&password=' + password + '&streetaddress=' + streetaddress + '&streetaddress2=' + streetaddress2 + '&city=' + city + '&state=' + state + '&zipcode=' + zipcode + '&month=' + month + '&day=' + day + '&year=' + year + '&services=' + services + '&agreement=' + agreement; 
    alert(dataString); 
    $.ajax({ 
     type: "POST", 
     url: "http://www.vectorcreditsolution.com/js/process.php", 
     data: dataString, 
      success: function() { 
      alert("Yay it was sent"); 
    } 
     }); 
     return false; 
    }); 

,然后我的PHP文件

<?php 
    $FirstName = $_POST["firstname"]; 
    $LastName = $_POST['lastname']; 
    $AreaCode = $_POST['areacode']; 
    $PhoneNumber = $_POST['phonenumber']; 
    $EmailAddress = $_POST['emailaddress']; 
    $Password = $_POST['password']; 
    $StreetAddress = $_POST['streetaddress']; 
    $StreetAddress2 = $_POST['streetaddress2']; 
    $City= $_POST['city']; 
    $State = $_POST['state']; 
    $ZipCode = $_POST['zipcode']; 
    $Month = $_POST['month']; 
    $Day = $_POST['day']; 
    $Year= $_POST['year']; 
    $Service=$_POST['services']; 

    var_dump($_POST["firstname"]); 
    var_dump($_POST['firstname']); 
    var_dump($_POST[firstname]); 
+4

而不是手动,使用[ajaxForm或序列化](http://stackoverflow.com/a/1960245/797303) – 2012-01-17 15:56:13

+0

愚蠢的问题:你采取什么步骤来查看你的PHP文件来测试,如果$ _POST是填充?你使用萤火虫来检查回应? – DampeS8N 2012-01-17 16:13:33

+0

哦,我用的var_dump – user1154295 2012-01-17 16:15:49

回答

4

你是不是输出从AJAX返回的数据,并没有使用工具来查看。也许你期待var转储出现在页面上。他们不会,他们将返回到成功的功能,你可以使用这些数据,你觉得合适。

jQuery的AJAX方法管从你的PHP文件的输出到成功函数内部的“RET”变量。例如,如果您希望返回HTML成功消息,则可以将该HTML添加到页面而不刷新它。或者任何一件事。

您应该阅读AJAX。

更改此:

$.ajax({ 
type: "POST", 
    url: "http://www.vectorcreditsolution.com/js/process.php", 
    data: dataString, 
    success: function() { 
     alert("Yay it was sent"); 
    } 
}); 

这样:

$.ajax({ 
type: "POST", 
    url: "http://www.vectorcreditsolution.com/js/process.php", 
    data: dataString, 
    success: function(ret) { 
     alert(ret); 
    } 
}); 

,然后单击与jQuery的页面上提交按钮。

不要将此与其他答案结合在此页面上。一个将会改变你的数组键(serialize)。

+0

哦警告框变成字符串(10)测试 – user1154295 2012-01-17 16:24:15

+0

但帖子值仍为NULL – user1154295 2012-01-17 16:24:40

+0

请勿直接使用[php文件](http://www.vectorcreditsolution.com/js/process.php)。我假设“测试”是您输入表单的值? AJAX响应(警告框)显示了PHP输出的内容。 – DampeS8N 2012-01-17 16:30:52

5

尝试张贴的数据是JavaScript字典,而不是作为一个大的字符串:

$.ajax({ 
    // ... 
    data: { 
     firstname: firstname, 
     lastname: lastname, 
     // etc. 
    } 
}); 
+0

感谢您回应:-)我尝试过了,它仍然空\t数据:{ \t \t \t姓:姓名, \t \t \t名字:姓氏, \t \t \t AREACODE:AREACODE, \t \t \t电话号码:PHONENUMBER, \t \t \t EMAILADDRESS:EMAILADDRESS, \t \t \t密码:p assword, \t \t \t的StreetAddress:的StreetAddress, \t \t \t streetaddress2:streetaddress2, \t \t \t城市:城市, \t \t \t状态:状态, \t \t \t邮政编码:邮政编码, \t 个月:一个月 \t \t \t}, – user1154295 2012-01-17 16:12:46

0

我会使用序列化()jQuery的功能。而不是寻找每个领域的价值序列化整个窗体

$("#form-id").serialize(); 


$.ajax({ 
    type: "POST", 
    url: "http://www.vectorcreditsolution.com/js/process.php", 
    data: $("#form-id").serialize(), 
     success: function() { 
     alert("Yay it was sent"); 
} 
    }); 
    return false; 
}); 
+0

这将改变他们的阵列在他们的钥匙。 – DampeS8N 2012-01-17 16:28:16

+0

它会将它们更改为表单中的字段名称。通常不是所有这些有害的,但他们将不得不修改他们的PHP。 – VictorKilo 2012-01-18 22:30:11