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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1972閲覧

SelectBoxのselected

Z-TALBO

総合スコア525

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/05/23 09:56

編集2016/05/25 00:01

###やりたいこと
DBから引っ張ってきたデータを修正用のフォームに反映させ、セレクトボックスで修正する。
その際に、項目が当然出るのはもちろんだけど、そのデータでselectedしておきたい。

###現在のコード(おおまかに)

PHP

1[index.php] 2<form action="" method="POST"> 3// 検索条件の選択 4</form> 5<div id="result"> 6<?php update_select() ?>

PHP

1[controller.php] 2function update_select() { 3$id = $_POST['id']; 4$row = update_select_db(); 5$name = $row['name']; 6$dakoku_id = $row['dakoku_id']; 7$dakoku = $row['dakoku']; 8$timedate = $row['timedate']; 9echo "<table>" 10// <thead>部分は省略します 11echo "<tbody><tr><td>" . $name . "</td> 12<td>" . $dakoku . "</td></tr></tbody></table>";

DBの部分は要らないですかね?
情報自体は引っ張ってきているので、表示方法の部分での質問になりますので、、、

###その他情報
dakoku_id = 19のidと出勤などの名称を登録したテーブル(A)から抜き出しています。
dakoku = テーブル(B)から抜き出しています。当然これだけの結果なら1
9のいずれかが入っています。
上記をINNER JOINでdakoku_id = dakokuで結合して抽出しています。

###最終的にやりたい形

HTML

1<select name="update_dakoku"> 2<option></option> // 空白を一応 3<option value="1">出勤</option> 4<option value="2">退勤</option> 5<option value="3">休憩入</option> 6<option value="4">休憩戻</option> 7<option value="5">○○</option> 8<option value="6">××</option> 9<option value="7">△△</option> 10<option value="8">□□</option> 11<option value="9">@@</option> 12</select> 13 14<!-- で、例えば、抽出したデータが 15dakoku_id = 3 16dakoku = 休憩入だったら --> 17 18<select name="update_dakoku"> 19<option></option> // 空白を一応 20<option value="1">出勤</option> 21<option value="2">退勤</option> 22<option value="3" selected>休憩入</option> <!-- データに合わせてselected --> 23<option value="4">休憩戻</option> 24<option value="5">○○</option> 25<option value="6">××</option> 26<option value="7">△△</option> 27<option value="8">□□</option> 28<option value="9">@@</option> 29</select>

controller.phpの$dakokuの部分をこのような感じで表示させたいのですが、どのようにしたら簡単でしょうか?
そこはそこで関数にするほうが見やすいかもしれないので、そこはそこでfunction化はできます。

###最後に
効率などの問題的に、これでは効率が悪いかもしれませんが、現在ゴリゴリ書くけど処理を分けてみるというところに重点を置いているので、このような感じになっております。
処理分けに関しては今回は質問ではありません。

###結果
どうも、書き方の問題かもしれませんが、回答いただきました部分で変更してみたところ、どうもうまくいきませんでした。。。。
とりあえず、dakokuマスターのテーブルを引っ張ってくれば、selectBoxは作成できました。
それからのselectedですが、がりがり書いて、非効率かとは思いますが、、、

PHP

1if (dakoku_id == em_id) { 2print("<option value=\"$em_id\" selected>$dakoku_name</option>"); 3} else { 4print("<option value=\"$em_id\">$dakoku_name</option>"); 5}

というので、動作しました。。。

回答いただきまして、大変ありがとうございます!
教えていただいた書き方については、またいろいろ書いてみて動作等確認して行こうと思います。

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

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

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

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

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

guest

回答2

0

ベストアンサー

表示方法の部分だけの回答です。

php

1<?php 2function update_select() { 3 $row = update_select_db(); 4 $dakoku_id = $row['dakoku_id']; 5?> 6<select name="update_dakoku"> 7 <option></option> 8 <?php foreach ($DAKOKU_MASTER as $MM): ?> 9 <option value="<?= $MM['id'] ?>" <?= ($dakoku_id == $MM['id']) ? 'selected' : '' ?>><?= $MM['label'] ?></option> 10 <?php endforeach; ?> 11</select> 12<?php 13} 14?>

明確な回答を得たい場合、最低限以下を全て満たすようにしてください。
これらの情報は回答者にはわからず、想像で答えるしかなくなってしまいます。

  1. 現状どんなソースで
  2. どんな結果になっていて
  3. どう変更・修正したいか(どんな結果を期待しているか)
  4. エラーが出ている場合は、エラー内容
  5. DBのデータを扱う場合、SELECTで取得したデータ構造がどうなっているか。=> var_dump($db_data);の出力結果

投稿2016/05/24 02:55

rkojima

総合スコア421

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

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

Z-TALBO

2016/05/25 00:02

回答ありがとうございました! 質問内容に不備がたくさんあり大変申し訳ありませんでした! 以後気をつけてまとめてから質問できるようにしたいと思います。
guest

0

こんな感じ? (変数名は適当です)

PHP

1$str = ''; 2foreach ($data_ar as $data) { 3 if ($data['val'] == $current) ? ' selected' : ''; 4 $str .= '<option value="' . $data['val'] . '"' . $sel . '>' . $data['txt'] . '</option>' . "\n"; 5}

投稿2016/05/23 10:06

takasima20

総合スコア7458

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

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

Z-TALBO

2016/05/25 00:03

回答ありがとうございました! 参考にさせていただきます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問