質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

Q&A

2回答

3429閲覧

PHP checkboxの更新画面での質問です。

SUZUSUZU

総合スコア12

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

0グッド

0クリップ

投稿2016/12/03 09:00

PHPでの質問です。
ページの構造は投稿ページと更新ページがあり(checkboxの項目は同じ複数チェックされます)
投稿ページのformのcheckboxの値をimplode()で連結して、データーベース格納しました。
更新ページでcheckboxの項目に格納した値をchekboxで選択状態にするにはどういった考え方がいいのか...教えてください。explode()でまた配列にするのかも..ロジックがわかりません。

投稿ページ $text= $_POST['text']; $text=implode('/',$text); <form method='post' action=''> <input type="checkbox" name="text[]">A <input type="checkbox" name="text[]">B <input type="checkbox" name="text[]">C </form> 更新ページ $text=explode("/",$text); print_r($text); //[0] => B [1] => C //下のフォームにcheckboxのB,Cを選択した状態にしたいです。 <form method='post' action=''> <input type="checkbox" name="text[]">A <input type="checkbox" name="text[]">B <input type="checkbox" name="text[]">C </form>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

http://www.htmq.com/html5/input_type_checkbox.shtml

checked属性を追加してやればいいのではないでしょうか。

具体的なソースコード(一例)

php

1<?php 2 3$text[0] = 'B'; 4$text[1] = 'C'; 5 6$form = <<< HTML 7<form method='post' action=''> 8 <input type="checkbox" name="text[]" value="A">A 9 <input type="checkbox" name="text[]" value="B">B 10 <input type="checkbox" name="text[]" value="C">C 11</form> 12HTML; 13 14// DOMドキュメント 15$dom = new DOMDocument(); 16$dom->loadHTML($form); 17 18// inputタグの数だけループ 19foreach ($dom->getElementsByTagName('input') as $input) 20{ 21 // valueの値が$text配列に含まれていたら 22 if (in_array($input->getAttribute('value'), $text)) 23 { 24 // checked属性追加 25 $input->setAttribute('checked', ''); 26 } 27} 28 29// HTMLに出力 30echo $dom->saveHTML();

投稿2016/12/03 10:02

編集2016/12/03 12:21
Takamoso

総合スコア248

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SUZUSUZU

2016/12/03 10:21

checked="checked”を更新ページで動的につけるのに悩んでいます。 何かわかりますかね。Cが選ばれていたらCにchecked="checked”をつけたいです!
SUZUSUZU

2016/12/03 12:30

javascriptですね! ご丁寧な回答ありがとうございます。javascriptは未知の領域でこれから勉強しようと思っています。 大変参考になります。ありがとうございます!
Takamoso

2016/12/03 12:33

PHPですよ!!
Takamoso

2016/12/03 12:33

確かにチェックボックスをチェックするくらいならJavascript使えばいいやってなるかもしれません。
SUZUSUZU

2016/12/04 13:26

DOMドキュメントは初めて知りました! PHPなのですね..
guest

0

投稿2016/12/03 09:30

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SUZUSUZU

2016/12/03 09:52

cakephpを一から勉強しようと思います!
SUZUSUZU

2016/12/03 09:58

cakephpではない直に書くロジックを教えていただければありがたいです.. すいません!
退会済みユーザー

退会済みユーザー

2016/12/03 11:11

CakePHPを使うというのは趣旨ではありません。データベースのカラムにカンマ区切りでデータを保存するというのは、望ましい方法ではないので、データベースのかラムは正規化しましょうということが回答の趣旨となります。
SUZUSUZU

2016/12/03 11:20

丁寧にありがとうございます! リンク頂いたデータベースのカラムの正規化じっくり読んで勉強します! ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問