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

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

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

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

HTML

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

Q&A

解決済

4回答

4651閲覧

テキストボックスでvalueにpost送信するやつの、ラジオボックスとプルダウンリストVer

earnest_gay

総合スコア615

PHP

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

HTML

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

0グッド

0クリップ

投稿2016/06/09 17:02

会員登録フォームなどでactionが自身だった場合、再入力させるのは手間なのでよく下記のような形でvalueにPOST送信して前回入力したものが残るような仕組みがあります。

<input type="email" name="email" value="<?php echo h(filter_input(INPUT_POST, 'email')); ?>" maxlength="50" >

テキストボックスは分かるのですが、
ラジオボックスとプルダウンリストの場合はどこにPOST送信すればいいのでしょうか?

<input type="radio" name="sex" value="男性" />男性 <input type="radio" name="sex" value="女性" />女性 <select name="pref"> <option value="東京都">"東京都"</option> <option value="大阪">"大阪"</option> <option value="福岡">"福岡"</option> </select>

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

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

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

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

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

guest

回答4

0

ベストアンサー

「どこにPOST送信すれば」の意味がちょっと難解ですけど

おそらくこういう事じゃないでしょうか....

php

1<input type="radio" name="sex" value="男性" <?php if( h(filter_input(INPUT_POST, 'sex') === '男性') echo 'checked="checked"' ?>/>男性 2<input type="radio" name="sex" value="女性" <?php if( h(filter_input(INPUT_POST, 'sex') === '女性') echo 'checked="checked"' ?> />女性 3 4<select name="pref"> 5<option value="東京都" <?php if( h(filter_input(INPUT_POST, 'pref') === '東京都') echo 'selected="true"' ?>>"東京都"</option> 6<option value="大阪" <?php if( h(filter_input(INPUT_POST, 'pref') === '大阪') echo 'selected="true"' ?>>"大阪"</option> 7<option value="福岡" <?php if( h(filter_input(INPUT_POST, 'pref') === '福岡') echo 'selected="true"' ?>>"福岡"</option> 8</select>

投稿2016/06/09 21:33

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

earnest_gay

2016/06/09 23:50

すいません。 POST送信ではなく テキストボックスの場合は テキストボックスに入力した値を自身のvalueにPOST受信することによって、再入力の手間をなくしていますが それをセレクトボックスでやるにはどうしたらいいかという質問です。
masaya_ohashi

2016/06/10 00:17

この投稿で正解だと思いますよ。 radioを「選ばれている」状態にするには該当のタグにchecked="checked"という属性をつけますし、selectを「選ばれている」状態にするには該当のoptionにselected="selected"という属性をつけます。 上記のコードは、テキストボックスへの補完と同じように、前回の入力値を参照して===で一致したものを選択状態にするというコードです。
退会済みユーザー

退会済みユーザー

2016/06/10 03:15

masaya_ohashi 様 補足ありがとうございます..♪
earnest_gay

2016/06/10 11:30

回答ありがとうございます! 下記に組み込みたいのですが、記述の時点でエラーになってしまいます... 何度か試したのですが... <?php class Sex{ function getSex(){ $options = '<input type="radio" name="sex" value="男性" />男性 <input type="radio" name="sex" value="女性" />女性'; return $options; } } ?> syntax error, unexpected というエラーがでてしまいます...
退会済みユーザー

退会済みユーザー

2016/06/10 13:09

....^^; ご質問の趣旨が タイトルの物とは違った物になってしまっているような... 簡潔に回答させて頂きますと.... 記述されたコードには記述ミスは見当りません、 エラーレポート「syntax error」に行番号が表示されているはずですので確認してみて下さい。 あと、老婆心ながら、この程度のソースをclass(オブジェクト)にするのは逆に手間がかかるばかりでなんのメリットもないんじゃないでしょうか? 更に、唯一 組み込まれているfunction(関数)も単にHTMLソースを変数に代入して 戻り値にしているだけで、これもさして意味がある様には思えません。 一度、問題点を基に、発生している課題を整理して  簡潔に一つづつ解決される様にされてはどうでしょうか?  どんどん 迷走してしまう事になりかねませんよ^^;
guest

0

php

1<?php 2 3class Sex 4{ 5 6 function getSex() 7 { 8 $options = '<input type="radio" name="sex" value="男性" />男性 9<input type="radio" name="sex" value="女性" />女性'; 10 return $options; 11 } 12 13} 14?>

これは、イけてませんね…

このクラスは、性別のラジオボタンを生成するというごく限られた時だけ利用する関数となっていて、全く汎用性がありません。

男性・女性のセレクトボックスを生成する必要が出た時に、もう一つメソッドを作るんですか?
同じページに、もし性別を選ぶ項目を複数配置することになったら、name属性の違うものを生成するメソッドを追加するんですか?

クラスにするメリットが全くないダメプログラムです。

以下に例を示します。下の例の方が汎用性があるのがわかりますよね。

php

1<?php 2 3class FormHelper 4{ 5 6 /** 7 * radioボタンを生成する 8 * @param string $name name属性の値 9 * @param array $arr value=>string の連想配列 10 * @param string $defaultValue 初期値 11 */ 12 public static function radio($name, array $arr, $defaultValue = null) 13 { 14 $html = ""; 15 foreach ($arr as $key => $val) { 16 $html .= sprintf('<label><input type="radio" name="%s" value="%s"%s> %s</label>' 17 , $name 18 , $key 19 , ($defaultValue == $key) ? ' checked="checked"' : '' 20 , $val); 21 } 22 return $html; 23 } 24 25 public static function select($name, array $arr, $defaultValue = null) 26 { 27 //todo 28 } 29 30 public static function checkbox($name, array $arr, $defaultValue = null) 31 { 32 //todo 33 } 34 35} 36 37$name = 'sex'; 38$arr = array('1' => '男性', '2' => '女性'); 39$sex = filter_input(INPUT_POST, $name); 40echo FormHelper::radio($name, $arr, $sex); 41 42$name = 'pref'; 43$arr = array('1' => '北海道', '2' => '青森', ....); 44$pref = filter_input(INPUT_POST, $name); 45echo FormHelper::radio($name, $arr, $pref);

投稿2016/06/11 18:52

編集2016/06/12 04:07
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

earnest_gay

2016/06/13 16:18

ありがとうございます!
guest

0

参考URL
HTMLについてはw3c公式やリファレンスサイト
あたりを参考にするか、書籍のリファレンスで調べるのが早くて正確ですのでお勧めします。

投稿2016/06/09 18:16

tanat

総合スコア18709

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

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

earnest_gay

2016/06/13 16:17

ありがとうございます!
guest

0

たとえばこんな感じにすると汎用的にいろいろできます

<?PHP $checked["sex"]=array("男性"=>"","女性"=>""); if(isset($_REQUEST["sex"])){$checked["sex"][$_REQUEST["sex"]]=" checked";} $selected["pref"]=array("default"=>" selected","東京"=>"","大阪"=>"","福岡"=>""); if(isset($_REQUEST["pref"])){$selected["pref"][$_REQUEST["pref"]]=" selected";} print <<<eod <form> <p> <input type="radio" name="sex" value="男性"{$checked["sex"]["男性"]}>男性 <input type="radio" name="sex" value="女性"{$checked["sex"]["女性"]}>女性 </p> <p> <select name="pref"> <option value=""{$selected["pref"]["default"]}>==選択==</option> <option value="東京"{$selected["pref"]["東京"]}>東京</option> <option value="大阪"{$selected["pref"]["大阪"]}>大阪</option> <option value="福岡"{$selected["pref"]["福岡"]}>福岡</option> </select> </p> <p> <input type="submit" value="go"> </p> </form> eod;

もちろんヒアドキュメントを使わずに、つどつどprintしてもよいです

投稿2016/06/10 02:17

yambejp

総合スコア114585

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

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

earnest_gay

2016/06/13 16:18

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問