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; 
4

3 回答 3

2

是的。要么传递一个json,如:

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

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

或指定参数名称(您只传递一个字符串,有效的查询字符串应类似于 'parametername1=paramatervalue1¶metername2=paramatervalue2'):

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

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

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

希望有帮助。

于 2013-05-29T18:28:23.953 回答
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']来获取传递的值。

于 2013-05-29T18:30:31.003 回答
0

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

var dataString = 'first_name='+first_name + '&surname='+ surname + '&email_addr=' + email_addr + '&user_age=' + user_age + '&user_type=' + user_type;

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

所以它会这样写:

  success: function(data) {
    console.log('i got data!',data);
  }
于 2013-05-29T18:30:22.680 回答