0

用户单击提交表单按钮后,我需要在页面重新加载时显示一个 div。

具体来说,我在显示/隐藏 div 中有一个 PHP 联系表单。单击联系人显示和隐藏联系表格。显示/隐藏 js 和 php 联系表单都可以完美运行。当用户单击提交时——页面重新加载并且“发送的消息”写入联系表单 div。但是当页面重新加载时,表单在一个设置为display: none;的 div 中。在 CSS 中——这是页面默认加载的方式。

提交后,我需要重新加载页面并在隐藏的 div 中显示联系表单。我不确定从哪里开始,因为页面的所有 javascript 都重新加载为默认值。此外,由于这都是 PHP,我无法在 content_form div 中设置或调用锚点。

谢谢!

4

4 回答 4

2

我更喜欢 CSS 解决方案而不是 JS 解决方案。

if ($form_is_valid)
    echo '<style type="text/css">#contact { display: block; }</style>';

编辑:为了让事情更简洁,如果提交成功,我建议在表单中添加一个类。像这样的东西:

$class = $form_is_valid ? ' class="submitted"' : '';
echo '<form method="..." action="..."' . $class . '>...</form>';

然后,您可以在定义之后进行 CSS 定义display: none;,如下所示:

form.submitted { display: block; }
于 2009-08-20T18:36:45.840 回答
1

仅当表单发送成功时,您才可以使用一些 PHP 代码编写脚本。

然后只需回显一个 JavaScript 以将元素显示设置为阻止(类似于以下 PHP 代码):

if($form_is_valid)
{
    echo '<script type="text/javascript">'
       . 'document.getElementById("elementID").style.display = "block";'
       . '</script>';
}
于 2009-08-20T18:24:22.153 回答
0

如果表单加载了提交的内容,则可以使用 javascript 检测输入字段中是否存在文本。如果存在任何内容,请设置 display: block。

于 2009-08-20T23:48:54.837 回答
0

Breakthrough 的答案应该可以正常工作,但我个人不喜欢在标记中放置任何类型的成功或错误消息,即使在页面加载时并非如此,甚至被 CSS 隐藏。由于页面无论如何都会重新加载,这样做将完全不需要任何 JavaScript 或 CSS 来解决这个问题:

<?php if ($form_is_valid) include('SnippetFileWithSuccessMessageDivInIt.php') />
于 2009-08-20T18:37:41.627 回答