如何在POST方法之后使用javascript更改HTML内容
How to change HTML content with javascript after the POST method
在用POST方法提交表单后,我很难用javascript更改HTML文档中的内容。我需要将HTML文档中div的颜色更改为黄色,我已经这样做了,但问题是,在它更改为黄色后,HTML网站在导航器中被刷新,然后恢复正常(白色)。它有点闪烁黄色,然后又变成白色。
这是我的HTML代码:
<form action="" method="post" onSubmit="return changeColor()">
.
.
.
<div id="divColor">
.
.
这是我更改div颜色的javascript代码:
function changeColor()
{
var div = document.getElementById("courselist");
div.style.backgroundColor='yellow';
}
我需要这样做,因为这是任务的一部分,所以我不能用CSS更改颜色,到目前为止我们只能使用HTML和javascript。这不是全部任务,以防有人认为我想作弊,这是我被卡住的部分。在导航器使用POST方法刷新HTML网站后,我无法使div保持黄色。
谢谢!
提交表单时,它会转到action=""
中指定的下一页。因此,当您单击提交按钮时,它会更改颜色,然后加载下一页。由于缺少action=""
中指定的页面,它正在重新加载同一页面,使其变为黄色,然后刷新。
这可能就是你想要的。您可以使用AJAX向POST提交信息,而无需实际加载不同的页面。
实现目标有三种方法。
-
使用ajax提交信息,这样页面就不会刷新,状态也会保持不变。或者,您可以像下面这样做,它具有与ajax相同的效果:
<iframe name="myIfr"style="display:none"><iframe><form method="post"target="myIfr"><表单>
-
更改"的"action",在url中记录状态,如下所示:"mypage.php?status=1",刷新页面后,可以从url中获取状态。
-
使用Cookie。我认为这不是一个好主意。
您可以将其分离,以便只有在满足其他条件时才能打印出表单。使用一个名为$output_form的变量(或者您想命名它的任何变量)并将其设置为false,然后在发送POST之前和发送POST之后分别打印代码。这是我不久前完成的一些代码的精简版本,可能会帮助你了解你能做什么:
<?php
if(isset($_POST['Submit'])){
{SOME CODE HERE}
$output_form = true;
}
}
else{
$output_form = true;
}
if (!$output_form){
{SOME CODE HERE}
}
else{
{OTHER STUFF HERE}
$output_form = true;
mysqli_close($dbc);
}
}
if ($output_form){
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
谢谢你的帮助,我不能使用AJAX或PHP,因为他们还没有教我们这些。
- Javascript更改图标
- 用Javascript更改我网站上的字体大小
- 在PHP中使用javascript更改页面标题'if'
- Windows形成web浏览器控件和Javascript更改的DOM
- 如何使用javascript更改google repatcha的大小
- 使用CSS/JavaScript更改剑道图工具提示文本颜色
- 如何用另一个Javascript更改Javascript函数值
- 使用HTML5播放器时使用Javascript更改Youtube视频
- 使用javascript更改表单元素的ID值
- 使用JavaScript更改JavaScript内容
- 如何修复:当javascript更改DOM时,iOS会删除CSS文件
- 如何使用JavaScript更改页面URL
- 使用Javascript更改Nested Span类
- 如何使用javascript更改网页的标题
- 通过Javascript更改PHP会话变量
- Javascript更改iframe上的scr
- 用于刷新的Javascript更改查询字符串
- 如何使用Javascript更改HTML元素的类
- 使用带有变量的javascript更改图像src
- 使用javascript更改链接内的ip