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


$_POST variables are not set when validate a form with jQuery ajax function

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

当我将表单值发送到php文件时,是否未设置$_POST var?

<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脚本是:

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

JS脚本是:

$( "#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 );
          });
        });

如何获取表单值?

问题是传递给post()的数据,它应该是

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

您正在传递一个名为s的参数,其值为序列化形式