いつも助けていただきましてありがとうございます。
チェックボックスの値をMysqlに登録するところまではできましたが、
今度それを、確認・更新画面に読み込む方法でつまずいています。
どうぞご指導をお願い致します。
Mysqlから「days_id」の値が「0,2,5」と取得されても
実際のチェックが付くのが、「5」のみなってしまいます。
配列としてMysqlから値を取得する方法を教えて下さい。
$res = mysql_query($sql);
$i=0;
foreach($labels as $label){
while ($row = mysql_fetch_array($res)) {
$days_id = $row["days_id"];
}
if($i==$days_id){
$checked = " checked";
echo "<label>\n<input type=\"checkbox\" name=\"job_type[]\" value=\"{$i}\" {$checked} />{$label}</label>";
}else{
$checked = "";
echo "<label>\n<input type=\"checkbox\" name=\"job_type[]\" value=\"{$i}\" {$checked} />{$label}</label>";
}
$i++;
}
No.2ベストアンサー
- 回答日時:
根本的にアルゴリズムが変。
あと、phpには、有用な関数がいっぱいあるので、配列内に或る値が存在するかのチェック用関数もある。$res = mysql_query($sql);
// 先に下準備で、データを得る
$days_id=array();// 空配列宣言
while ($row = mysql_fetch_array($res)) {
$days_id[] = $row["days_id"];
// []内の添え字無しで、配列の要素に順に格納=array_push()
}
// 本番出力用ループ
$len = count($labels);
for($i=0; $i< $len; $i++){
// ↑ここは、foreach でもいいけど、どうせ配列のインデックスが必要なのだからforの方が自然。
// 配列$days_idの値に $iがあるかチェック
if( in_array( $i, $days_id) ){
$checked = " checked";
}else{$checked = " ";}
echo "<label>\n<input type=\"checkbox\" name=\"job_type[]\" value=\"{$i}\" {$checked} />{$labels[$i]}</label>";
}
参考URL:http://php.benscom.com/manual/ja/function.in-arr …
ありがとうございます。
感動です。初心者で独学なので、ひとつひとつが勉強です。
アルゴリズムと言う言葉も聞いたことはありますが、
なんのことやらってレベルですので、また勉強していきたいと
思います。
丁寧にご回答を頂き、本当に感謝致します。
ありがとうございます。
No.1
- 回答日時:
phpは使ったことが無いのですが、}の場所、おかしくありませんか?
それに
>チェックが付くのが、「5」のみなってしまいます
というか、最後のデータだけ表示されませんか?
違っていたらすみません。
$res = mysql_query($sql);
$i=0;
foreach($labels as $label){
while ($row = mysql_fetch_array($res)) {
$days_id = $row["days_id"];
#}<-ここにあると、$days_idを空更新している(最後の$days_idを持って次へ、それも1度だけ)
if($i==$days_id){
$checked = " checked";
echo "<label>\n<input type=\"checkbox\" name=\"job_type[]\" value=\"{$i}\" {$checked} />{$label}</label>";
}else{
$checked = "";
echo "<label>\n<input type=\"checkbox\" name=\"job_type[]\" value=\"{$i}\" {$checked} />{$label}</label>";
}
$i++;
}<-ここじゃない?
}
$p.s.
$i=0の位置も何か・・・foreachの後じゃないと・・・
この回答への補足
ありがとうございまs。
>チェックが付くのが、「5」のみなってしまいます
というか、最後のデータだけ表示されませんか?
ご指摘の通りです。
いろいろ移動させてみたりしたのですが、
うまくいかず暗礁に乗り上げております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP 掲示板を作成しておりアップロードファイルとメッセージを並べたいので、アドバイスお願い致します 2 2023/07/17 21:01
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- その他(プログラミング・Web制作) seleniumbasic chrome操作について 1 2023/03/29 15:40
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ゆゆにゃ。
-
php 入力画面から確認表示画面...
-
アンドロイドスマホでのphp ech...
-
PHPのエラーの解消法について教...
-
RSSと投稿記事を交互に表示させ...
-
PHPSpreadsheetによる書き出し...
-
フォームで戻った際に入力済み...
-
画像ファイルの名前をそのままU...
-
これの対応OSを教えて下さい。p...
-
アマゾンのような評価の星を選...
-
ファイルアップロードに関して...
-
Q&Aサイトを作成していてURLの...
-
phpでcookieがうまく保存されない
-
アップロード画像数でCSSを分け...
-
アップロードファイルの数に応...
-
php 確認表示画面で値をSESSION...
-
ワードプレスプラグイン MW WP ...
-
phpのメールフォームの完了画面...
-
PHPSpreadsheetを使って関数を...
-
PHPで画像の渡しが上手く行きま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAについて
-
PHPで[]の使い方について
-
DBで検索結果に該当するデータ...
-
アラートでyes noを作りたいです。
-
dbに登録したデータをphpのプル...
-
phpでmysqlを使ってデータベー...
-
sortable ギブアップです…助け...
-
checkboxクリック時、SQLを実行...
-
PHPでMY SQLの連想配列をリンク...
-
チェックボックスによる複数の...
-
PHPでMySQLデータを呼び出し、w...
-
mysql_fetch_objectの書き方を...
-
SELECT結果から動的にコンボボ...
-
チェックボックスでチェックし...
-
VBA初心者です。
-
PHPについてなのですが未定義の...
-
文字化けが解決できません。お...
-
htmlとphpの分離
-
php テーブルが作成できない
-
検索結果をgoogleのように数件...
おすすめ情報