-1

私の JavaScript コードは、想定どおりに動作しているようです。しかし、Chrome で「ソースを表示」すると、実際に実行される JavaScript と一致しません。

これが私のコードです:

<?php
    $_SESSION['new'] = "blue";
    if (!isset($_SESSION['old'])) { $_SESSION['old'] = "blue"; }
        echo '<script type="text/javascript">
            $(document).ready(function() {
                changeCol("'.$_SESSION["old"].'","'.$_SESSION["new"].'");
            });
          </script>';
    $_SESSION['old'] = "blue";
?>    

$_SESSION['old']="green"前のページから。このコードは、 を呼び出してからchangeCol("green","blue")を設定することになっています$_SESSION['old']="blue"

実際、これらの両方が発生するため、コードは設計どおりに機能します、ソースを表示すると、changeCol("blue","blue"). console.logchangeCol() で渡された変数を に書き込むと、 が得られるため、これは奇妙ですgreen, blue

呼び出し中の場合、ソースを表示changeCol(green,blue)するとなぜそれが表示されるのでしょうか?changeCol(blue,blue)

4

2 に答える 2

12

ソースを表示すると、おそらく追加の要求を行っていることになります。セッション変数がリセットされます。

Chrome または Firefox を使用している場合 (そうすべきです)、Web 開発者ツールまたは Firebug を開いて、実際の DOM ツリーを調べることができます。(これは、スクリプトがコンテンツを動的に追加した場合にも非常に役立ちます。)

于 2012-12-07T04:27:16.227 に答える
1

2 ページ目に含め<?php session_start(); ?>ましたか?

于 2012-12-07T04:28:56.880 に答える