0

私は奇妙な問題を抱えています。結果に応じて、js関数に1を送信するためにphpを使用しています。1 が送信されると、html の一部がブロックされて表示されるようになります。1はアラートに表示されるため正しく送信されていますが、コマンドに到達すると

document.getElementById("countdown").style.display="block";

私が使用しているコードは次のとおりです。

PHP:

if ($Grade == "Kindergarten") 
{
    echo "<script language=javascript>showCountDown(1)</script>";
}

私のjsファイルのコードは次のとおりです。

function showCountDown(index)
{
    alert("Checking for Kindergarten");
    if (!index)
        var n = document.getElementById("Grade").selectedIndex;
    else
        var n = index;

    alert("Showing Index Selected: " + n);

    if (n == 1) 
    {
        alert("about to show Countdown to Kindergarten");
        document.getElementById("countdown").style.display="block";
        alert("Showing Countdown to Kindergarten");
    } 
    else 
    {
        alert("About to remove Countdown to Kindergarten");
        document.getElementById("countdown").style.display="none";
        alert("Removing Countdown to Kindergarten");
    }
}

ここに奇妙な部分があります。少なくとも私にとっては、html から呼び出されたときに同じコードが機能します。

<select size="1" name="Grade" id="Grade" onChange="showCountDown();">

できれば学年が「幼稚園」で、divのカウントダウンを表示したいです。しかし、正しい変数が送信されているときにコードが正しく機能しない理由がわかりません。

誰か助けてくれませんか?

4

1 に答える 1

0

ブラウザのコンソールに JavaScript エラーがないか調べてみましたか? エラーに関するいくつかの手がかりが得られるはずです..

これに対する参照エラーがある場合、次のshowCountDown理由が考えられます。

1 - JavaScript ファイルを含めるのを忘れました。次のようにphpでこれを行うことができます:

echo "<script src='your-file.js'></script>";

2 - 宣言される前に関数を呼び出しています

3 - JavaScript ファイルに他のエラーがあります

あなたがHTMlで関数を呼び出すのに問題がなかったと言ったように、それが2番目のオプションだと思います.

于 2013-04-25T22:51:34.040 に答える