2016-04-15 58 views
0

拿起变量我有一个sign_up.php脚本指向POST变量,像这样:PHP脚本没有通过Ajax

include "index.php"; 

$first_name = $_POST["first_name"]; 
$last_name = $_POST["last_name"]; 
$email = $_POST["email"]; 
$password = password_hash($_POST["password"], PASSWORD_BCRYPT); 

index.php包含实际标记和Ajax代码,像这样:

<div id=form-div> 
<form method=POST action="" > 
First Name: <br> <input type=text name=first_name pattern="[a-z]{2,}" required /> <br> <br> 
Last Name: <br> <input type=text name=last_name pattern="[a-z]{2,}" required /> <br> <br> 
Email: <span id=emailReport></span> <br> <input type=email name=email id=email required /> <br> <br> 
Password: <br> <input type=password name=password required pattern=".{6,}" title="Password must be six or more characters" /> <br> <br> 
Confirm password: <br> <input type=password name=password required /> <br> <br> 
<input type=submit value='sign up' /> 
</form> 
</div> 

<script> 
    $('form input:last-child').click(function(e){ 
    e.preventDefault(); 
    $('#hidden').load("sign_up.php"); // hidden is a display:none div on the same page 
}); 
</script> 

但是,sign_up.php脚本最终没有选择变量并返回所有这些字段中未定义的通知级别警告。是否不可能选择那样的变量?

PS: 的sign_up.php脚本包含自身没有输出,但是从包含脚本所预期的变量只是处理细节。 奖励: 前两个正则表达式只能匹配两个或多个字母。事实上,它什么都不匹配。

+0

当您调用'.load()'时,您不会发送任何'POST'参数。 – Barmar

+0

另外,你的大括号在Javascript中不平衡。 – Barmar

+0

@Barmar对不起,我修好了大括号。排除是由于我从实际页面删除脚本的结果。 'load'函数是否需要参数?我认为这只是'.ajax'方法需要的。另外,我的另一个脚本有一个'include',它应该在没有运行时拾取这些变量? –

回答

0

当您拨打​​时,您需要发送表单字段。

$("#hidden").load("sign_up.php", $("#form-div form").serialize()); 
+0

我试过了。它仍然没有发送。我可能会错过什么?等待脚本是否需要'include'因为我忽略了它? –