0

POST メソッドでフォームを送信した後、javascript を使用して HTML ドキュメントのコンテンツを変更するのに問題があります。HTML ドキュメント内の div の色を黄色に変更する必要があります。既に行っていますが、問題は、黄色に変更された後、ナビゲーターで HTML Web サイトが更新され、通常の (白) に戻ることです。 )。黄色が点滅してから、再び白になります。

ここに私の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 Web サイトを更新した後、div を黄色のままにすることはできません。

ありがとうございました!

4

4 に答える 4

1

フォームを送信すると、で指定された次のページに移動しますaction=""。したがって、送信ボタンをクリックすると色が変わり、次のページが読み込まれます。で指定されたaction=""ページがないため、同じページをリロードしているため、黄色に変わり、更新されます。

これはおそらくあなたが探しているものです。AJAXを使用して、実際に別のページをロードせずにPOSTに情報を送信します。

于 2012-07-26T05:40:13.263 に答える
1

目的を達成する方法は 3 つあります。

  1. ajax を使用して情報を送信すると、ページが更新されず、ステータスが維持されます。または、次のようにすることもできます。これは ajax と同じ効果があります。

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

  2. "" の "action" を変更して、"mypage.php?status=1" のように URL にステータスを記録します。ページが更新された後、URL からステータスを取得できます。

  3. クッキーの使用。私はそれは良い考えではないと思います。

于 2012-07-26T07:01:18.857 に答える
0

こんにちはみんな私はついに私の問題を解決しました。私の changeColor() 関数で false を返す必要があり、ウェブサイトの色は変わりますが、それ自体は更新されません。私はクッキーを使ったアプローチが好きです。

AJAX も PHP もまだ教えてもらっていないので、私はどちらも使えませんでした。

于 2012-07-26T14:32:19.443 に答える
0

他の条件が満たされた場合にのみフォームが印刷されるように、それを分離できます。$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']; ?>">
于 2012-07-26T05:45:17.630 に答える