teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2016/10/27 06:39

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -11,4 +11,34 @@
11
11
  ?>
12
12
  ```
13
13
  としておけば、<select>を囲むformのaction先のコントローラで
14
- DB_IDを取得できるのであとは質問に記載されているソースを適宜それに合わせて調整すれば行けませんか?
14
+ DB_IDを取得できるのであとは質問に記載されているソースを適宜それに合わせて調整すれば行けませんか?
15
+
16
+ 追記
17
+ ```html
18
+ <form method="POST" action="">
19
+ <select name="database_id">
20
+ <option value="1">name1</option>
21
+ <option value="2">name2</option>
22
+ <option value="3">name3</option>
23
+ <option value="4">name4</option>
24
+ </select>
25
+ <input type="submit" value="送信">
26
+ </form>
27
+ ```
28
+ 例えば上記のようなHTMLが出力されるようにする、POST送信は送信ボタンでもjavascriptでPOSTしても色々やりようはあると思いますが、これで同コントローラへPOST送信されます。
29
+
30
+ htmlが表示された状態でソースを表示して、実際上記のようなHTMLになっているか確認してください
31
+
32
+ これで送信すると同じページ(同コントローラ)へPOST送信されるので
33
+ $_POSTにdatabase_idがセットされているはずです。
34
+
35
+ ここまではcakePHP等フレームワークも言語も関係なくHTMLの仕様です。
36
+
37
+ これをコントローラ側で取り出す方法はフレームワークによりやり方は違いますので
38
+ cakePHPは使う事がない為詳しくはしりませんので今ネットでしらべた情報ですが、
39
+
40
+ `$this->request->query('database_id');`
41
+
42
+ で取得できると思います(未確認、取得できなかったら下記サイト参考にして試してください。)
43
+
44
+ 参考:http://qiita.com/qiita_taro/items/23f935f24840d0bd3cf9

2

修正

2016/10/27 06:39

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -5,8 +5,6 @@
5
5
  ```php
6
6
  <?php
7
7
  foreach($dbs as $name){
8
- $database=$name['DBS']['NAME'];
9
- $buffer=$database;
10
8
  printf("<option value=\"%d\">%s</option>",
11
9
  $name['DBS']['DB_ID'],$name['DBS']['NAME']);
12
10
  }

1

修正

2016/10/27 06:12

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -7,7 +7,7 @@
7
7
  foreach($dbs as $name){
8
8
  $database=$name['DBS']['NAME'];
9
9
  $buffer=$database;
10
- printf("<option value=\"%d\" selected>%s</option>",
10
+ printf("<option value=\"%d\">%s</option>",
11
11
  $name['DBS']['DB_ID'],$name['DBS']['NAME']);
12
12
  }
13
13
  ?>