在AJAX请求中传递表单数据的麻烦

在AJAX请求中传递表单数据的麻烦

问题描述:

I'm having issues passing form values to PHP via an AJAX request. As per my code below, variables can be passed back so I suspect the issue may be with data: $('#signup-form').serialize().

JS:

$.ajax
({
    type: "POST",
    url: "http://www.domain.com/includes/register.php",
    data: $('#signup-form').serialize(),
    success: function(data)
        {
            $('#signup-response').hide();
            $('#signup-response').fadeIn();
            $('#signup-response').html(data);
        },
    error: function()
    {
        alert("fail");
    }
})

Form:

<form id="signup-form" action="" method="POST">
    <input name="email" type="email" class="form-control" id="signupEmail" placeholder="Email address">
    <input name="password1" type="password" class="form-control" id="signupPassword" placeholder="Password">
    <input name="password2" type="password" class="form-control" id="signupPassword2" placeholder="Password">
    <select name="country" id="signupCountry" class="selectpicker">
        <option value="0">Country</option>
        <option>United States</option>
        <option>United Kingdom</option>
        <option>Canada</option>
    </select>
    <select name="gender" id="signupGender" class="selectpicker">
        <option value="0">Gender</option>
        <option>Female</option>
        <option>Male</option>
    </select>
    <button id="signup" class="btn btn-success btn-block signup" type="submit">Sign up</button>
</form>

register.php

<?php
$username = $_POST['signupEmail'];
echo "hello"; // works
echo $username; // doesn't work
?>

我遇到了通过AJAX请求将表单值传递给PHP的问题。 根据我的下面的代码,变量可以传回,所以我怀疑问题可能出在 data:$('#signup-form')。serialize() code>。 p>

JS: p>

  $。ajax 
({
 type:“POST”,
 url:“http://www.domain.com/includes  /register.php",nn data:$('#signup-form')。serialize(),
 success:function(data)
 {
 $('#signup-response')。hide()  ; 
 $('#signup-response')。fadeIn(); 
 $('#signup-response')。html(data); 
},
 error:function()
 {
 警告(“失败”); 
} 
})
  code>  pre> 
 
 

表单: p>

 &lt; form  id =“signup-form”action =“”method =“POST”&gt; 
&lt; input name =“email”type =“email”class =“form-control”id =“signupEmail”placeholder =“电子邮件地址 “&gt; 
&lt; input name =”password1“type =”password“class =”form-control“id =”signupPassword“placeholder =”Password“&gt; 
&lt; input name =”password2“type =” 密码“class =”form-control“id =”signupPassword2“placeholder =”Password“&gt; 
&lt  ; select name =“country”id =“signupCountry”class =“selectpicker”&gt; 
&lt; option value =“0”&gt; Country&lt; / option&gt; 
&lt; option&gt; United States&lt; / option&gt; 
  &lt; option&gt; United Kingdom&lt; / option&gt; 
&lt; option&gt; Canada&lt; / option&gt; 
&lt; / select&gt; 
&lt; select name =“gender”id =“signupGender”class =“selectpicker”&gt;  
&lt; option value =“0”&gt;性别&lt; /选项&gt; 
&lt;选项&gt;女&lt; /选项&gt; 
&lt;选项&gt;男&lt; /选项&gt; 
&lt; / select&gt; 
&lt;  button id =“signup”class =“btn btn-success btn-block signup”type =“submit”&gt;注册&lt; / button&gt; 
&lt; / form&gt; 
  code>  pre> 
 \  n 

register.php p>

 &lt;?php 
 $ username = $ _POST ['signupEmail']; 
echo“hello”;  // works 
echo $ username;  //不起作用
?&gt; 
  code>  pre> 
  div>

Try this, You need to use input name <input name="email" type="email" class="form-control" id="signupEmail" placeholder="Email address"> rather use of input field id.

 $username = $_POST['email'];

instead of

  $username = $_POST['signupEmail'];