我是一名业余编码员,在新的一年里我开始学习 HTML5 和 CSS3。
我目前面临挑战,我有一个单页 html 文件 (index.html)。在页面中有一个 html 表单,它对 php 文件有一个操作。一旦 php 文件处理了表单,它就会将用户引导回 index.html。我想做的是在我的网站顶部显示一个 div,上面写着“感谢您填写表格!”
我该怎么做?我假设我们会做某种“如果推荐页面是 form.php 然后显示 div”,但我不知道如何检测推荐页面。另外我不知道使用什么语言,我假设是 javascript。我想远离 php,因为我不想让我的单页 html 文件变成 php 文件。
我希望这是清楚的 谢谢!
最佳答案
由于我不知道您页面的确切结构,我建议您使用 session 和 htaccess 以允许在 html 文件中使用 php。
处理后立即在您的 php 文件中写入以下内容:
@session_start();
$_SESSION['submitted_msg'] = "You have submitted a form";
在您的 html 文件中,将此写在您希望显示消息的位置:
<?php if (isset($_SESSION['submitted_msg'])) { ?>
<div><?php print($_SESSION['submitted_msg']);?></div>
<?php unset($_SESSION['submitted_msg']);} ?>
要实现此功能,您需要在元素的根目录中有一个 .htaccess
文件。里面有以下代码:
AddType application/x-httpd-php .html
希望这对您有所帮助,如果您需要其他方法,请写下更多详细信息。
更新 1:启用 Cookie 的 JavaScript 方法
表单.php
<?php
# above is form processing...
setcookie ("submit_message", 'thanks...', time()+3600, '/');
header("Location: index.html");
exit;
?>
index.html
<html>
<head></head>
<body>
<script type="text/javascript">
function readCookie(name)
{
var cookiename = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++)
{
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(cookiename) == 0) return c.substring(cookiename.length,c.length);
}
return null;
}
function deleteCookie( name, path, domain )
{
document.cookie=name+"="+((path) ? ";path="+path:"")+((domain)?";domain="+domain:"") +
";expires=Thu, 01 Jan 1970 00:00:01 GMT";
}
window.onload = function()
{
var msg = '';
if (readCookie('submit_message') != null)
{
msg = readCookie('submit_message');
deleteCookie('submit_message','/');
}
document.getElementById('message').innerHTML = '<div style="background:green">'+msg+'</div>';
}
</script>
<div id="message">
</div>
</body>
</html>
如果你去形成 php,它会将你重定向到 index.html 并显示消息,如果你刷新消息消失。
祝你好运。
关于javascript - 如何根据引用页面显示一个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14188182/