标题可能看起来有点令人困惑,但让我告诉你我想做什么。所以我在register.php上有一个注册表。表单数据由用户在keyup上的register.class.php文件处理,然后返回提交数据中的任何错误并放入“#return”div(在register.php中)。
“#return_error”回复得很好,我没有回答这个问题,但由于某些原因,即使没有错误,“#return_success”也不会回应。
我对jQuery很新,所以请原谅我。
以下是文件:
register.class.php
//this is just an excerpt from the file, the rest of the code in the file was just validation.
$register = new Register();
$username = $_POST['username'];
$email1 = $_POST['email'];
$email2 = $_POST['reemail'];
$pass1 = $_POST['pass'];
$pass2 = $_POST['repass'];
$register->Username($username, $mysqli);
$register->Email($email1, $email2, $mysqli);
$register->Password($pass1, $pass2);
// no errors are found
if ($register->getStatus() === true) {
echo "<div id=\"return_success\">";
echo "<ul>";
echo "<li><b>Everything is valid</b></li>";
echo "</ul>";
echo "</div>";
} else {
//errors found
echo "<div id=\"return_error\">";
echo "<ul>";
foreach ($register->errors as $error) {
echo "<li><b>" . $error . "</b></li>";
}
echo "</ul>";
echo "</div>";
}
的script.js
$(document).ready(function() {
$("#return").hide();
$("#register input").keyup(function() {
$.post("classes/register.class.php", $("#register").serialize(), function(data) {
$("#return").html(data);
$("#return").show();
if (data === '') {
$("#return").hide();
}
});
});
});