我有一个指向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脚本本身不包含任何输出,只是处理所包含脚本中预期变量的详细信息。奖金:前两个正则表达式模式无法仅匹配两个或多个字母。事实上,它与任何东西都不匹配。
调用.load()
时需要发送表单字段。
$("#hidden").load("sign_up.php", $("#form-div form").serialize());