0

デフォルトでチェックされている4つのチェックボックスがあるページがあります。チェックボックスをオフにすると、Cookie が書き込まれるため、そのページに戻ったときに設定が保存されます。私が抱えている問題は、何があっても Cookie が書き込まれているように見えることです。初めてページにアクセスしても Cookie は作成されませんが、ボックスのチェックを外すと次のコードがスローされます。現状では、初めて自分のサイトにアクセスしたときに Cookie が作成されます。

どこで間違ったのですか (複数の場所にあっても驚かないでしょう)。

$('#mycheckbox').change(function() {
if (! this.checked) {
<?php setcookie('key', 'Value', time() + 4800); ?>
}
});
4

2 に答える 2

4

いいえ、this.checked動作します。

問題は、PHP コードがサーバー側で実行され、ブラウザーによって解釈されないため、常に実行されることです。すべての PHP コードは、ブラウザがファイルを取得する前に実行されます。

解決策は、その PHP を外部ファイルに配置し、jQuery を使用$.ajaxしてそのファイルを要求することです。これにより、必要な場合にのみコードが実行されます。

$.cookiejQueryプラグインをチェックアウトすることもできます。

于 2012-08-05T03:36:02.963 に答える
0

@MarkBがすでに言ったように、javascriptとphpを混同しています。この場合、php の代わりに javascript を使用して Cookie を設定する必要があります。詳細については、この投稿を参照してください。

サーバーは JavaScript コードを無視し、php コードを実行して Cookie を設定するだけなので、既にお気づきのように、現在のコードは常に Cookie を設定します。

于 2012-08-05T03:40:08.150 に答える