使用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文件时, PHP脚本是: p>
JS脚本是: p>
如何获取表单值? p>
DIV> $ _ 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>
if(isset($ _ POST [“mail”]))
{
$ mail = $ _POST [“mail”];
print $ mail;}
else {print“ko”;
}
code> pre>
$(“#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>
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