PHP脚本没有通过Ajax获取变量

时间:2016-04-15 18:29:41

标签: php jquery ajax

我有一个指向POST变量的 sign_up.php 脚本,如下所示:

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脚本本身不包含任何输出,只是处理所包含脚本所需变量的详细信息。 的奖金: 前两个正则表达式模式不能匹配两个或多个字母。事实上它什么都不匹配。

1 个答案:

答案 0 :(得分:0)

您需要在致电.load()时发送表单字段。

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