繁体   English   中英

如何在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提交信息,而不实际加载不同的页面。

有三种方法可以实现您的目标。

  1. 使用ajax提交信息,以便页面不刷新,状态保持不变。或者你可以像下面这样做,它与ajax具有相同的效果:

    <iframe name =“myIfr”style =“display:none”> </ iframe> <form method =“post”target =“myIfr”> ... </ form>

  2. 更改“”的“动作”,在网址中记录状态,如下所示:“mypage.php?status = 1”,刷新页面后,您可以从网址获取状态。

  3. 使用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']; ?>">

大家好我终于解决了我的问题。 我必须在我的changeColor()函数中返回false,网站将改变颜色,但不刷新自己。 我喜欢使用cookies的方法。

谢谢你的帮助,我无法使用AJAX或PHP,因为他们还没有教过我们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM