2013-05-29 69 views
1

我想使用AJAX提交我的表單,但數據未被傳遞。但是,我收到一條成功消息。提交不插入數據?

我是否需要以某種方式在我的數據字符串中指定我的變量?

var dataString = first_name + surname + email_addr + user_age + user_type; 
//alert (dataString);return false; 

$.ajax({ 
    type: "POST", 
    url: "process-signup.php", 
    data: dataString, 
    success: function() { 
    $('#contact_form').html("<div id='message'></div>"); 
     $('#message').html("<h2>Contact Form Submitted!</h2>") 
    .append("<p>We will be in touch soon.</p>") 
    .hide() 
    .fadeIn(1500, function() { 
     $('#message').append("<img id='checkmark' src='images/check.png' />"); 
    }); 
    } 
}); 
return false; 
+0

你能在PHP代碼中至少發佈函數聲明嗎? –

+1

當然,你需要字符串中的參數名稱 - 你的服務器怎麼可能知道如何解釋這個值的blob? – Pointy

回答

2

是的。無論是通過一個JSON,如:

JSON.stringify({ firstName: first_name, surName: surname ... }); 

正如在評論中指出,如果你使用jQuery AJAX,它會自動轉換成對象的查詢字符串。

或指定的參數名稱(你只傳遞一個字符串,一個有效的查詢字符串應該像「parametername1 = paramatervalue1 & parametername2 = paramatervalue2」):

data: 'firstName=' + first_name + '&surname=' + surname + '&email=' + email_addr ... 

然後在服務器端,您應該有變數像:

$_POST['firstName']; // first_name 
$_POST['surname']; // surname 

希望有所幫助。

+0

如果將一個對象傳遞給'$ .ajax()',那麼jQuery將執行「stringify」工作。 – Pointy

+0

啊,好吧,不知道。謝謝。 –

0

在PHP上我有點生疏,但是你正在發佈,但是你正在發送一個dataString。通常,您使用帶有dataString的GET請求。此外,datastring通常是這樣的:

VAR dataString = 'FIRST_NAME =' + FIRST_NAME + '&姓=' +姓+ '& EMAIL_ADDR =' + EMAIL_ADDR + '& user_age =' + user_age +「& USER_TYPE ='+ user_type;

此外,當您使用$ .ajax時,成功函數有一個參數data,通常在您回顯時從php腳本返回。

所以這將是這樣寫的:

success: function(data) { 
    console.log('i got data!',data); 
    } 
1
$.ajax({ 
    type: "POST", 
    url: "process-signup.php", 
    data: {Firstname:first_name,Surname:surname,Email:email_addr,Age:user_age,User_type:user_type}, 
    success: function() { 
    $('#contact_form').html("<div id='message'></div>"); 
     $('#message').html("<h2>Contact Form Submitted!</h2>") 
    .append("<p>We will be in touch soon.</p>") 
    .hide() 
    .fadeIn(1500, function() { 
     $('#message').append("<img id='checkmark' src='images/check.png' />"); 
    }); 
    } 
}); 

return false; 

在服務器端使用$_POST['Firstname']$_POST['Surname']等獲得傳遞的值。