質問: **1.解決したい問題** ------------- +------------------+ | | +------------------+ | | +------------------+ がそれぞれ準備されている。 それらを表示方法A、表示方法Bと分けて表示したい。 表示方法Aでは DivフォームA -> DivフォームBの順番で出力 表示方法Bでは DivフォームB -> DivフォームAの順番で出力がボタンで変更できるようにしたい。 表示の切り替えではOnclickイベントで.ajaxを使用しページを読み直さないようにしたい場合どのようにしたらよいか。 **2.使用しているプラグイン** ----------------- ベースはPHP ・JQuery(便利にajax使いたいので!) ・Smarty(HTMLの記載はphpで行いたくないのでSmartyに記載) ・ADOdb(使うために入っているが、今回のコードでは関係ない) **3.参考サイト様** ------------ JQueryのAjaxをPHPで使うやつ http://qiita.com/super2baba/items/b1301ca567b60b2e00c7 JavaScript:Post to PHP https://www.youtube.com/watch?v=jVAaxkbmCts **4.現行のコードの考え方(失敗)** -------------------- 1.Smartyで参照しているtplファイルの中に ``` と ``` が宣言済みで、 common.js側には ``` function chgView(){ $('#hoge').click(function(){ $.post('index.php',{ postDM:$('#hoge').val() }), function(data) { $('#hoge').html(data); } }); }); ``` と記載。 php側では ``` ``` としました。 UTF-8などの細かい設定はconfig.phpに記載しそれをリクワイアーしています。 **5.結果** -------- POSTの内容がnullになっています。ButtonだとValueの受け取りができないのでしょうか??? 以上解決策をご教授願います。
回答: POSTするとき、stringの"true"と"false"で送ったらしっかりなると思います。そしてサーバー側で送られた文字列がどちらかを判定し、それに応じたHTMLを返せばいいんじゃないでしょうか? ただし、その方法では絶対に ``` $var = eval($_POST['postDM']); ``` とせずに、 ``` if($_POST['postDM']){ $var = true; }else{ $var = false; } ``` このように分岐してください。