如何在POST方法之后使用javascript更改HTML内容

如何在POST方法之后使用javascript更改HTML内容,javascript,html,events,post,onsubmit,Javascript,Html,Events,Post,Onsubmit,在使用POST方法提交表单后,我很难用javascript更改HTML文档中的内容。我需要将HTML文档中div的颜色更改为黄色,我已经这样做了,但问题是在它更改为黄色后,HTML网站在导航器中刷新,然后恢复正常(白色)。它闪烁黄色,然后又变成白色 以下是我的HTML代码: <form action="" method="post" onSubmit="return changeColor()"> . . . <div id="divColor"> . . 我需要这样做

在使用POST方法提交表单后,我很难用javascript更改HTML文档中的内容。我需要将HTML文档中div的颜色更改为黄色,我已经这样做了,但问题是在它更改为黄色后,HTML网站在导航器中刷新,然后恢复正常(白色)。它闪烁黄色,然后又变成白色

以下是我的HTML代码:

<form action="" method="post" onSubmit="return changeColor()">
.
.
.
<div id="divColor">
.
.
我需要这样做,因为这是作业的一部分,所以我不能用CSS改变颜色,到目前为止,我们只能使用HTML和javascript。这不是全部作业,以防有人认为我想作弊,这是我被绊倒的部分。在导航器使用POST方法刷新HTML网站后,我无法使div保持黄色


谢谢大家!

当您提交表单时,它会转到
action=”“
中指定的下一页。因此,当您单击submit按钮时,它会更改颜色,然后加载下一页。由于缺少
action=“
中指定的页面,它正在重新加载同一页面,使其变为黄色,然后刷新


这就是你可能正在寻找的。您可以使用AJAX将信息提交到POST,而无需实际加载其他页面。

您可以将其分开,以便表单仅在满足其他条件时打印出来。使用一个名为$output_form的变量(或任何您想命名它的变量)并将其设置为false,然后让代码在发送帖子之前打印出一个内容,在发送帖子之后打印出一个内容。下面是我不久前完成的一些代码的精简版本,可能会帮助您了解您可以做什么:

<?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提交信息,这样页面不会被刷新,状态保持不变。或者您可以按如下方式执行,其效果与ajax相同:

  • 更改“”的“操作”,在url中记录状态,如:“mypage.php?status=1”,页面刷新后,可以从url中获取状态

  • 使用Cookie。我认为这不是一个好主意


  • 嗨,伙计们,我终于解决了我的问题。 我必须在changeColor()函数中返回false,网站将更改颜色,但不会刷新自身。我喜欢饼干的方法


    感谢您的帮助,我不能使用AJAX或PHP,因为他们还没有教我们这一点。

    使用cookie保存div的颜色,并在页面加载时进行设置。通常会有一些服务器端代码知道它是初始页面请求还是提交(如果没有某种服务器端处理,表单提交是毫无意义的)。假设你必须这样做,那么客户端Musa的所有建议都会起作用,或者一种对初学者来说可能更容易的方法是在查询字符串中添加一些内容。@Carlos Vargas,为什么在发布表单之前需要更改
    div#courselist
    的颜色(结果是,重新加载页面)?我无法理解。无论如何,您可以从以下几方面进行操作:1)不要使用
    onsubmit
    事件提交表单(只需从
    changeColor()
    )返回
    false
    ;2)更改服务器端
    div\courselist
    的颜色:将
    添加到html表单中,在
    changeColor()内
    将此隐藏输入的值更改为黄色;在PHP的服务器端读取
    courselistcolor
    参数的值,并将其设置为
    div#courselist
    的初始颜色。假设OP正在使用PHP,即使在问题的任何地方都没有提到它……但是,使用某些服务器端语言进行操作的一般原则是合适的。
    <?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']; ?>">