使用jQuery ajax函数验证表单时,未设置$ _POST变量

问题描述:

I have a html form and a jQuery function to validate my form.

When I send my form values to my php files, $_POST var is not set?

<form id="signup" class="dialog-form" action="bat/new_user.php" method="post">
    <div class="form-group">
        <label>E-mail</label>
        <input type="text" name="mail" placeholder="email@domain.com" class="form-control">
    </div>
    <div class="form-group">
        <label>Password</label>
        <input type="password" name="password" placeholder="My secret password" class="form-control">
    </div>
    <input type="submit" class="btn btn-primary">
</form>

PHP script is:

if (isset($_POST["mail"])) 
{
    $mail = $_POST["mail"];
    print $mail;}
    else{print "ko";
}

JS script is :

$( "#signup" ).submit(function( event ) {
            event.preventDefault();
          var $form = $( this ), url = $form.attr( "action" );
         console.log($form.serialize() );
          var posting = $.post( url, { s: $form.serialize() } );
          posting.done(function( data ) {
            $( "#register-dialog" ).append( data );
          });
        });

How I can get the form values?

我有一个html表单和一个jQuery函数来验证我的表单。 p>

当我将表单值发送到我的php文件时, $ _ POST code> var未设置? p>

 &lt; form id =“signup”class =  “dialog-form”action =“bat / new_user.php”method =“post”&gt; 
&lt; div class =“form-group”&gt; 
&lt; label&gt;电子邮件&lt; / label&gt; 
  &lt; input type =“text”name =“mail”placeholder =“email@domain.com”class =“form-control”&gt; 
&lt; / div&gt; 
&lt; div class =“form-group”  &gt; 
&lt; label&gt;密码&lt; / label&gt; 
&lt; input type =“password”name =“password”占位符=“我的密码”class =“form-control”&gt; 
&lt; / div&gt  ; 
&lt; input type =“submit”class =“btn btn-primary”&gt; 
&lt; / form&gt; 
  code>  pre> 
 
 

PHP脚本是: p>

  if(isset($ _ POST [“mail”]))
 {
 $ mail = $ _POST [“mail”]; 
 print $ mail;} 
  else {print“ko”; 
} 
  code>  pre> 
 
 

JS脚本是: p>

  $(“#si  gnup“).submit(function(event){
 event.preventDefault(); 
 var $ form = $(this),url = $ form.attr(”action“); 
 console.log($ form)  .serialize()); 
 var posts = $ .post(url,{s:$ form.serialize()}); 
 postd.done(function(data){
 $(“#register-dialog”  ).append(data); 
}); 
}); 
  code>  pre> 
 
 

如何获取表单值? p> DIV>

The problem is the data passed to post(), it should be

var posting = $.post(url, $form.serialize());

You are passing a parameter called s with value as the serialized form