0 レビュー
1 回答
Javascript-Cookieが存在する場合、条件付きでphpページにチェックボックスを追加します
PHP / WordPressページの送信ボタンの直前に、免責事項のテキストと確認のチェックボックスを追加するJavascriptがあります。私がしたいのは、スクリプトがCookieの存在をチェックすることです。 Cookieが存在しない(または期限切れになっている)場合は、免責事項のテキストを追加するには、チェックボックスをオンにして、続行する前にユーザーにチェックボックスをクリックするように強制します。ただし、完了すると、次にスクリプトを実行するときに、免責事項のテキストのチェックボックスをバイパスして、ユーザーが「送信」を押すことができるようにCookieが書き込まれます。
つまり、次のようなものです:
if cookie-exists {
// straight to submit part of the code
} else {
// show disclaimer and checkbox
// Only allow user to hit submit if checkbox is ticked
// Set the cookie with an expire of a day
}
ここでCookieの設定/読み取りに関する回答を確認できます>Cookieから値を作成して読み取るにはどうすればよいですか?
しかし、私はそれを以下のコードスニペットに取り込むのに苦労しています。
ポインタやヘルプをいただければ幸いです。ありがとう。
コードスニペットは次のとおりです:
function add_listing_select_cb()
{
?>
<script type="text/javascript">
jQuery(document).ready(function ($){
var checkbox_cont = '<br><input type="checkbox" name="I_Agree" id="I_Agree" value="I_Agree" /> <b>Disclaimer text here....</b>';
jQuery(".property-search input[type='submit']").before(checkbox_cont);
jQuery("#searchform").submit(function () {
if (!jQuery("#I_Agree").is(":checked")) {
alert("Please first agree with the terms.");
return false;
};
});
var $sel = $('#showresultsbasedonourratings'),
$opts = $sel.children();
$optsSorted = [];
$optsSorted.push($opts.eq(0));
for (var i = $opts.length - 1; i > 0; i--) {
$optsSorted.push($opts.eq(i));
};
console.log($optsSorted);
$sel.empty();
$sel.append($optsSorted);
});
</script>
<?php
}
わからない
0
レビュー
答え :
解決策:
これに似たものを試しましたか?
function add_listing_select_cb()
{
?>
<script type="text/javascript">
function getCookie(name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length == 2) return parts.pop().split(";").shift();
}
jQuery(document).ready(function ($){
if (getCookie("anything")!==true){
var checkbox_cont = '<br><input type="checkbox" **required** name="I_Agree" id="I_Agree" value="I_Agree" /> <b>Disclaimer text here....</b>';
jQuery(".property-search input[type='submit']").before(checkbox_cont);
jQuery("#searchform").submit(function () {
if (!jQuery("#I_Agree").is(":checked")) {
alert("Please first agree with the terms.");
return false;
};
});
}
var $sel = $('#showresultsbasedonourratings'),
$opts = $sel.children();
$optsSorted = [];
$optsSorted.push($opts.eq(0));
for (var i = $opts.length - 1; i > 0; i--) {
$optsSorted.push($opts.eq(i));
};
console.log($optsSorted);
$sel.empty();
$sel.append($optsSorted);
});
</script>
<?php
}
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。