2012-01-17 62 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