0

こんばんは。だから私は、選択値が変更されたときだけ関数をトリガーするこの単純なjQueryプログラムに取り組もうとしています。この単純な関数を機能させたら、より複雑なプログラムで使用する予定です。

これはコードです (これは jQuery API Web サイトから取得したもので、私がやりたいことを試すために少し変更しました):

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>change demo</title>
    <style>
        div {
        color: red;
        }
    </style>
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>

    <select id="selector" name="sweets">
        <option>Chocolate</option>
        <option selected="selected">Candy</option>
        <option>Taffy</option>
        <option selected="selected">Caramel</option>
        <option>Fudge</option>
        <option>Cookie</option>
    </select>
    <div></div>

    <script>
    $( "#selector" )
        .on('change',(function () {
            $( "select option:selected" ).each(function() {
                <?php header("Location:jcue.php")?>
            });
        })
        .change();
    </script> 
</body>
</html>

私がしたいことは、select 入力値が変更された場合にのみ、ページが jque.php にリダイレクトされることです。しかし、プログラムで何が起こっているかというと、現在のページ自体をロードすることさえせずに、自動的に別のページにリダイレクトするということです。どうしたの?jQuery と Javascript は、Web プログラミングにおいて私にとって未知の異国の地です。これは多くの Web プログラマーにとって非常に基本的なものであることはわかっていますが、必要なだけです (そして、Javascript、AJAX、および jQuery を使いこなせるようになったら、実際に学習を開始する必要があります)。自由時間(笑)。

これを使用する複雑なプログラムは、検索結果のフィルタリング プログラムです。しかし、それを行う前に、この単純なプログラムを機能させる必要があります。

誰でも私を助けることができますか?ありがとうございました。回答をいただければ幸いです。

4

4 に答える 4

3

代わりにこれを試してください::

$(function() {
    $("#selector").change(function() {
        location.href = "jcue.php";
    });
});

これで問題が解決します。

于 2013-08-19T16:20:49.897 に答える
1

問題は、ページが読み込まれるとすぐに PHP が実行されるためです。JavaScript のように組み込むことはできません。each()また、ハンドラー内には必要ありません。代わりにこれを試してください:

$("#selector").on('change',(function () {
    window.location.assign('jcue.php');
});
于 2013-08-19T16:21:26.613 に答える
1

JavaScript はクライアント側のスクリプトですが、PHP はサーバー側のスクリプトです。クライアントのブラウザに送信される前に、サーバー時に発生する PHP ヘッダー リダイレクトをトリガーしようとしています。したがって、これは変更イベントで機能しません。

単純に使用します:

$("#selector").change(function() {
    window.location = "jcue.php"; //this can be URL as well
});

PS 2 つの「選択された」オプションがあることに気付きましたが、その理由を教えてください。

于 2013-08-19T16:22:20.090 に答える