【发布时间】:2022-01-24 03:13:34
【问题描述】:
我正在使用同一 index.php 文件中的 PHP 代码检查此表单是否有错误:
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
<?php if(!empty($formErrors)){ ?>
<div id="errors">
<?php
foreach($formErrors as $error)
{ echo '* ' . $error . '.<br/>';}
?>
</div>
<?php } ?>
<input type="text" name="firstname">
<input type="submit" value="send">
</form>
PHP代码如下:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$fname = $_POST['firstname'];
$formErrors = array();
if(strlen($fname) < 2 ){
$formErrors[] = "First name must be longer than 1 character";
}
}
?>
到目前为止一切正常,除了我想防止页面在提交表单时滚动到顶部。所以我用ajax来解决这个问题:
$("form").submit(function(e){
e.preventDefault();
$.ajax({
type: $(this).attr("method"),
url: $(this).attr("action"),
data: $(this).serialize()
});
});
现在表单错误将不再显示,这不是我想要的。如何在不丢弃 ajax 的情况下再次显示错误?谢谢。
【问题讨论】:
-
您需要编写一些 JavaScript 从 php 读取错误数据(需要将错误数据回显为 JSON),然后将错误放入页面中的正确位置
-
你的 php 写得好像表单将使用默认表单提交,而不是 ajax 提交
-
我使用这个 ajax 代码只是为了防止滚动问题,除了显示错误之外,这就是我所需要的。
标签: javascript php jquery ajax forms