PHPの変数にtrueかfalseが入っていてHTMLでその変数を参照しチェックボックスのチェックを動的にPHPで制御を行う場合、どのようなやり方があるでしょうか?
<input type = "checkbox" name = "hoge" <?= $hennsuu?>>
とし
PHP側で宣言された変数を参照するようにしたのですが、画面には
チェックボックスの後ろに>と表示されるだけで上手くいきませんでした
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
まずcheckboxの仕様を確認しましょう。
http://www.htmq.com/html5/input_type_checkbox.shtml
チェックを付ける場合は、checked="checked"
を付加します。
なので、こんな感じでしょうか。
HTML
1<input type = "checkbox" name = "hoge" <?=$hennsuu?'checked="checked"':''?>>
投稿2016/07/13 05:32
総合スコア16996
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/13 06:12
2016/07/13 06:17
2016/07/13 06:29
0
ベストアンサー
チェックボックスの後ろに>と表示されるだけ
多分ですが、PHPが実行されていないのだと思います。
そのコードの書かれたファイルの拡張子は「.html」ですか?「.php」ですか?
投稿2016/07/13 05:47
総合スコア69364
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/13 06:10
2016/07/13 06:20
2016/07/13 06:27
0
trueなら
HTML
1<input type = "checkbox" name = "hoge" checked="checked" />
falseなら 「checked="checked"」を出力しないだけです。
HTML
1<input type = "checkbox" name = "hoge" />
なので、$hennsuu に「checked="checked"」という値を入れればOKです。
または、PHPの""と被ってわかりにくという場合「checked='checked'」でも大丈夫です。
(シングルクォーテーションで囲む)
投稿2016/07/13 05:30
総合スコア2208
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/13 06:14
2016/07/13 06:21
0
<input type = "checkbox" name = "hoge" <?PHP print $hennsuu?" checked":"";?> >
的な処理にしないとHTML側が認識してくれないでしょう
投稿2016/07/13 05:25
総合スコア114583
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/13 06:21
0
今回のようなsmartyの場合、phpで宣言した変数をtplに同期しなければなりませんので
$this->assign('変数名','Value');
で最初に宣言をしなければいけません。
もし類似の内容でお困りの方がいらっしゃいましたら
phpで上記の内容まず宣言したのちにほかの優秀な回答をくださった方々のスクリプトをアタッチする必要があります。
※僕の場合はアサインを知っていたのですぐに解決できました。。。。
投稿2016/07/13 08:06
総合スコア46
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ttyp03さんの記述でうまくいかないのであれば、Smartyの使い方に問題があるように思います。
<?= $hennsuu?>
そもそもSmartyのデリミターは左「<?=」右「?>」に変更してあるのでしょうか?
デフォルトは「{」「}」です。
変更していないのであれば、丁寧に書くと
<input type="checkbox" name="hoge"{if $hennsuu} checked="checked"{/if}>
これで$hennsuu
にtrue
が渡った時にチェックが入るはずです。
実際何が渡っているのかどうかは、
{var_dump($hennsuu)} <input type="checkbox" name="hoge"{if $hennsuu} checked="checked"{/if}>
これで確認できると思います。(Smarty2だと動かないかも?)
チェックボックスの場合、複数の要素がtrueになる可能性があるので、私の場合はだいたい
<input type="checkbox" name="hoge[]" value="fuga"{if in_array('fuga',$hennsuu)} checked="checked"{/if}> <input type="checkbox" name="hoge[]" value="piyo"{if in_array('piyo',$hennsuu)} checked="checked"{/if}>
このようにします。
$hennsuu
は配列で、中にはチェックしたいチェックボックスのvalue値が入っています。
投稿2016/07/13 04:07
総合スコア84
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。