WordPressのカスタム投稿で350件ほどの商品を登録しています。
single-custom.phpで商品ページにチェックボックスを設け、
jquery.cookie.jsを使用してチェックが付けられたチェックボックスのvalue値をcookieに保存、
それをフォーム画面で表示させたいのですが、私が書いたコードでは何も表示されませんでした。
value値には、single-custom.phpのタイトルが入るようにしています(日本語、英数字、記号が入り乱れ)。
どこがいけなかったのか、教えていただけないでしょうか。
ソースコード
PHP
1【single-custom.php】 2<section> 3 <input type="checkbox" id="checkBox" value="<?php the_title(); ?>" /> 4 <h2><?php the_title(); ?></h2> 5 6~~~中略~~~ 7 8</section> 9 10【フォーム画面】 11<p id="output"></p>
JavaScript
1jQuery(document).ready(function($) { 2var productArr = document.getElementById("checkBox").value; 3 $.cookie('productCheck', productArr, { expires: 100,path:'/'}); 4}); 5 6jQuery('#checkBox').click(function($){ 7 $.cookie("productCheck"); 8}); 9 10jQuery(document).ready(function($) { 11 var productName = $.cookie("productCheck"); 12 document.getElementById('output').insertAdjacentHTML('afterbegin', productName); 13});
補足情報
前提として、jQuery本体はヘッダーで読み込み、jquery.cookie.jsと私が書いたコードはフッターで読み込んでいます。
最初は document.getElementById("checkBox").value; ではなく、document.getElementById("checkBox"); にしていたら、
フォーム画面ではnullと表示されていました。
JavaScriptは初心者で上記のコードもいろいろなサイトを参照して書いたので継ぎはぎだらけだと思いますが、
どなたか教えていただけると幸いです。
どうぞよろしくお願いいたします。
さらに補足
JavaScript
1 2※このコードはjsファイルを作成してフッターで読み込み 3 4jQuery(document).ready(function($) { 5var productArr = document.getElementById("checkBox").value; 6 $.cookie('productCheck', productArr, { expires: 100,path:'/'}); 7}); 8 9$(function() { 10 $('#checkBox').click(function() { 11 var prodName = ($(this).prop("checked") ? $(this).val() : null); 12 $.cookie('productCheck', prodName, {expires:100, path:'/'}); 13 }); 14});
JavaScript
1※このコードは表示させたいページ内に記述 2 3jQuery(document).ready(function($) { 4 var productName = $.cookie("productCheck"); 5 $("#output1").val(productName); 6});
PHP
1【フォーム画面】 2<input type="text" name="output" id="output1" value=""> 3<input type="text" name="output" id="output2" value=""> 4<input type="text" name="output" id="output3" value=""> 5<input type="text" name="output" id="output4" value=""> 6<input type="text" name="output" id="output5" value="">
このように分けたら表示されるようになりました。
また、表示させたい個所をpタグにしていましたが、フォームページのテキストボックス内に表示させたいため、一部修正しました。
本来は複数の値(最大5個)を表示させたいのですが、最後にチェックした値しか表示されません。
あと、テキストボックス1つにつき1つのvalue値を入れたいのですが、それもどうするのかわかりません。