前提
ワードプレスを使ってイベントページを作成しており、
そのsingleページにContactForm7のフォームを挿入しています。
フォームの中にデイトピッカーを設けており、最小日・最大日を設定したいと考えています。
各記事ごとに選択できる日付の範囲を変えたいので、
カスタムフィールドで最小・最大の日付を選択し、これを反映できるようにしたいです。
js内にあるデイトピッカーの中で、PHPで取得した日付を出力することが希望です。
発生している問題・エラーメッセージ
■single.php
PHP
//デイトピッカーに日付選択範囲を追加する <?php $jsonString = json_encode($dataArray, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT); $date_start = [date_format(date_create(get_field('イベント開始日')), 'Y,m,d')]; $date_end = [date_format(date_create(get_field('イベント終了日')), 'Y,m,d')]; if($date_end){ $ads_s = json_encode($date_start); $ads_e = json_encode($date_end); }else{ $ads_s = json_encode($date_start); $ads_e = json_encode($date_start); } ?>
■script.js
js
$(function () { let $ads_s = JSON.parse('<?php echo $ads_s; ?>'); let $ads_e = JSON.parse('<?php echo $ads_e; ?>'); console.log($ads_s); console.log($ads_e); $("#custom-datepicker").datepicker({ language: 'ja', dateFormat: 'yy年mm月dd日(D)', minDate: new Date(JSON.parse("<?php echo $ads_s[0]; ?>")), maxDate: new Date(JSON.parse("<?php echo $ads_e[0]; ?>")) });});
single.php内では、「echo $ads_s」 で、["2022, 08, 01"]のような形で配列が出力できていることを確認しています。
しかし、jsファイルにJSONを用いたphpの配列が出力されません。
console.logで確認したところ、下記のようなエラーが出ております。
Uncaught SyntaxError: Unexpected token '<', "<?php echo"... is not valid JSON
検証モードでjsを確認したところ、
理想は下記のようになっていてほしいのですが、
js
let $ads_s = ["2022, 08, 01"];
このようになってしまいます。
js
let $ads_s = JSON.parse('<?php echo $ads_s; ?>');
どのようにすれば、エラーが解消できるかお力添えいただきたいです。
0 コメント