提交不插入数据?

时间:2013-05-29 18:24:27

标签: php javascript jquery ajax

我正在尝试使用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; 

3 个答案:

答案 0 :(得分:2)

是的。要么传递json,如:

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

正如评论中指出的,如果您使用的是jQuery ajax,它会自动将对象转换为查询字符串。

或指定参数名称(您只传递一个字符串,一个有效的查询字符串应该看起来像'parametername1 = paramatervalue1&amp; parametername2 = paramatervalue2'):

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

然后在服务器端你应该有如下变量:

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

希望有所帮助。

答案 1 :(得分: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']等来获取传递的值。

答案 2 :(得分:0)

我在PHP上有点生疏,但是你正在POST,但是你发送了一个dataString。通常,您使用带有dataString的GET请求。此外,数据字符串通常如下所示:

var dataString ='first_name ='+ first_name +'&amp; surname ='+ surname +'&amp; email_addr ='+ email_addr +'&amp; user_age ='+ user_age +'&amp; user_type ='+ user_type; < / p>

此外,当你使用$ .ajax时,success函数有一个参数data,它通常在你回显时从php脚本返回。

所以它会这样写:

  success: function(data) {
    console.log('i got data!',data);
  }