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で少しさびていますが、POSTしていますが、dataStringを送信しています。通常は、dataString で GET リクエストを使用します。さらに、データ文字列は通常次のようになります。

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

さらに、$.ajax を使用する場合、success 関数にはパラメーター data があり、これは通常、エコー時に php スクリプトから返されます。

したがって、次のように記述されます。

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