保持页面,并在PHP中的Javascript警报时不重置表单字段

时间:2014-06-04 16:17:45

标签: javascript php forms

我遇到了php中的表单和嵌入其中的一些Javascript代码的麻烦。

我想留在页面上,并且在Javascript警报之后不要重置表单字段。显示警报时,页面将重新加载,表单中的所有字段都将重置。

以下是代码:

if (!empty($_REQUEST['captcha'])) {
if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) {

      echo "<script type=\"text/javascript\">

      alert(\"El texto no coincide, por favor vuelva a intentarlo\");

      return false;

      </script>"; 


} else {

     $para = 'xxx';
     $asunto = 'Mensaje de mi sitio xxx';
     $nombre = $_GET['nombre'];
     $email = $_GET['email'];
     $contenido = "Mensaje enviado por " . $nombre . " \r\n";
     $contenido .= "e-mail es: " . $email . " \r\n";
     $contenido .= "Mensaje: " . $_GET['texto'] . " \r\n";
     mail($para, $asunto, $contenido);
     echo "<script type=\"text/javascript\">

     alert(\"Gracias por contactar con nosotros, nos pondremos en contacto lo antes posible.\");
     document.contacto.captcha.select();
     return false;

     </script>"; 

}
$request_captcha = htmlspecialchars($_REQUEST['captcha']);

unset($_SESSION['captcha']);

}

非常感谢您的帮助。

度过美好的一天。

2 个答案:

答案 0 :(得分:0)

您的表单是否发布到此php?我认为你已经从你的问题中删除了HTML格式。如果您想以这种方式验证表单,则需要根据$ _REQUEST以HTML格式填写值。

更好的解决方案是使用AJAX验证表单。

答案 1 :(得分:0)

您的PHP代码应该获取$ _POST请求中的数据,并在重新加载后将其发送回页面。 然后,在表单内部,您应检查每个变量,如果它不为空,则预填充表单上的字段。

如果您不使用框架(如代码所示),这是您作为开发人员的时间。 尝试一种最受欢迎​​的方法,为Symfony2,Laravel,Zend Framework2提供优质的工作处理表格和验证。