0

私は問題があります。

Zend を使用して Web アプリケーションを作成していますが、jquery と JavaScript で問題が発生しました。

スクリプト タグ内のページに jquery コードが記述された注文を表示するページがあります。

jquery $.post を使用して、Web サイトの各ページを読み込みます。

私の問題は、新しい注文ページを選択すると(初めて注文ページにアクセスするとき)、jqueryダイアログボックスを開くボタンをクリックして、正しい投稿変数が送信される注文に情報を追加することです。しかし、別の注文に進み、その追加ボタンをもう一度クリックすると、前の注文からポスト変数が送信されます。

以前の JavaScript 情報はキャッシュされていたと思います。キャッシュを空にすると、注文に対しては正常に機能しますが、その後の注文では失敗します。

問題の変数(注文ID)をインラインJavaScriptコードに貼り付けるためにphpを使用しています。

これは私の落ち度だと思います。

私が理解していないのは、JavaScriptがページの最初の読み込みでうまく機能することです。これは、その後、ajaxを使用してページのさらにいくつかのセクションを取得するためです。それは正常に機能しますが、ボタンを使用すると、最初に使用した元の注文 ID に戻ります。

添付は私のコードです:

function getFreightTable()
    {
        $.post("order/freighttable", "OrderID=<?= $this->orderID; ?>" , function(data){
            $("#tabs-3").html(data);
        });
    }

    $("#OrderAddFreightButton").live('click',function() {
        $.post("freight/new", "OrderID=<?= $this->orderID; ?>", function(data) {
            $("#orderAddFreightDialog").html(data);
            $("#orderAddFreightDialog").dialog({    
                autoOpen: true, 
                hide: 'slide',
                show: 'slide', 
                title: 'Add New Freight Information',
                closeOnEscape: true,
                close: function(event, ui) 
                { 
                    $("#orderAddFreightDialog").empty();
                    getFreightTable();
                }
            });
        });
        return false;
    });

私のphpはコード内に正しい注文IDを配置していますが、JavaScriptは古いセットに戻っています。

別のコンピューターで使用してキャッシュをクリアしても、サイトの別のセクションと JavaScript が 3 週間前の JavaScript コードに戻るという同様の問題があります。これは私をびっくりさせています。

4

2 に答える 2

4

jQuery の.ajax()を使用して を指定できますcache: false。これにより、リクエストがリクエストをキャッシュしないように強制されます。関数を書き直して、 を使用せず$.post、代わりに を使用する必要があることに注意してください$.ajax。それをしたくない場合は、ブラウザをだますために URL に追加することもできます。

$.post("url...?c=" + Math.random())

これは最善の方法ではありませんが、どちらも機能します。

于 2011-01-20T03:34:16.967 に答える
0

私が試してみましたcache : false

最後にランダム get 変数を追加してみました。

投稿がキャッシュされていないことは承知していますが、使用されている JavaScript はページの最初のビューからの最初のバージョンであるため、各ページにある JavaScript はキャッシュされている必要があります。

于 2011-01-20T05:02:30.800 に答える