我正在制作一份简单的联系表格。
它使用PHP代码在提交后显示“谢谢”消息。
提交表单后,问题就出现了问题。
PHP代码:
<?php
session_name("fancyform");
session_start();
$_SESSION['n1'] = rand(1,20);
$_SESSION['n2'] = rand(1,20);
$_SESSION['expect'] = $_SESSION['n1']+$_SESSION['n2'];
if(isset($_SESSION['sent']))
{
$success='<h1>Thank you!</h1>';
unset($_SESSION['sent']);
}
?>
表格代码(部分):
<section id="revealAnim" class="page5">
<div class="page_container">
<div class="icono red"></div>
<p class="titulo_cabecera">Necesito soluciones!</p>
<p class="subtitulo_cabecera">Rellena el formulario y estaremos en contacto en menos de 24h</p>
<form class="demo-form" name ="demo-form" data-parsley-validate method="post" action="submit.php" >
<ul>
<li class="js-hide-label">
<label for="name">Nombre:</label>
<input type="text" placeholder="Nombre" id="name" name="name" data-parsley-trigger="change" required tabindex="1" autocomplete="off" value="<?php echo (isset($_SESSION['post']['name']) ? $_SESSION['post']['name'] : ''); ?>" >
</li>
<li class="js-hide-label">
<label for="email">Your Email:</label>
<input type="email" placeholder="Your Email" id="email" data-parsley-trigger="change" name="email" autocomplete="off" required tabindex="2" value="<?php echo (isset($_SESSION['post']['email']) ? $_SESSION['post']['email'] : ''); ?>">
</li>
<li class="js-hide-label">
<label for="message">Message:</label>
<textarea placeholder="Message…" id="message" name="message" tabindex="3" required data-parsley-trigger="keyup" textarea id="message" data-parsley-minlength="20" data-parsley-maxlength="100" data-parsley-minlength-message = "Come on! You need to enter at least a 20 caracters long comment.." data-parsley-validation-threshold="10"><?php echo (isset($_SESSION['post']['message']) ? $_SESSION['post']['message'] : ''); ?></textarea>
</li>
<input class="btn btn-default"type="submit" name="button" id="button" value="Submit" />
</ul>
<?php echo isset($success)?$success:''; ?>
</form>
</section>
我应该使用Javascript表单来避免这个问题吗?或者有任何解决PHP代码的解决方案?。
否则我正在使用ONE PAGE SCROLL因此滚动会破坏我对90%用户的可用性,因为他们必须滚动回到底部页面(它们是5)以查看表单是否已被提交。
谢谢
答案 0 :(得分:0)
你可以像你建议的那样使用AJAX / Javascript,也可以将访问者重定向到id标签。
http://example.com/index.php#contact
因此,提交后,正文将自动滚动到联系表单。
答案 1 :(得分:0)
默认情况下,在提交表单时会重新加载网页。这就是PHP的工作原理。 当用户单击提交按钮时,会向服务器发送http请求,从而请求新数据,因此必须重新加载页面以预览响应数据。 避免这种情况的方法是使用AJAX
此链接上有一个很好的示例:Submit A Form Without Page Refresh using jQuery