電子書籍の厳選無料作品が豊富!

お世話になっております。

ひとつわからないのですが、
たとえば、プルダウンには、”選択してください”、”東京”、”大阪”、”沖縄”と入っているとします。ここで、”大阪”を選び、別ページ”A”で値を$_postで受け取るとします。選択済みは”選択してください”です。
このページ”A”は再編集するためのページです。ページ”A”を開くと、先ほど選択した”大阪”をプルダウンメニューの初期設定(選択済み)にするにはどうしたらいいのでしょうか。
申し訳ございませんが、ご教授願います。よろしくお願いいたします。

A 回答 (3件)

こんにちは。


PHP側で処理する方法、JavaScriptで処理する方法
と考えられます。

1.PHP側での処理(コンボボックスの表示が固定)

$location = $_POST['location'];
print "<select name=\"location\">\n";
if ( $location == "東京" ) {
 print "<option value=\"東京\" celected>東京\n";
} else {
 print "<option value=\"東京\">東京\n";
}
if ( $location == "大阪" ) {
 print "<option value=\"大阪\" celected>大阪\n";
} else {
 print "<option value=\"大阪\">大阪\n";
}
// 以下コンボボックスの項目分処理の追加が必要


2.配列やDBよりコンボボックスの表示内容を取ってる場合

// 例は配列
$location = $_POST['location'];
$selArr = array ( "選択して下さい","東京","大阪","沖縄");

print "<select name=\"location\">
for ( $i = 0; $i < count($selArr); $i ++ ) {
 $selected = "";
 if ( $location == $selArr[$i] ) {
  $selected = " selected";
 }
 print "<option value=\"".$selArr[$i]."\"$selected>".$selArr[$i]."\n";
}
print "</select>\n";

1.はコンボボックスの表示内容は固定で書いています。
postで取得した値がoptionを書き出す部分で
一致した場合にselectedを追加した形で出力します。
項目が増えると、その分ifを追加しないといけません。

2.は配列でコンボボックスに表示するものを準備しておき、
展開して表示する形です。
(項目が増えても簡単に対応できるのでお勧めです。)
送信されたコンボボックスの内容と再編集ページで
コンボボックスを配列より生成する際に比較を行い、
$selectedという変数にselectedを入れることにより
デフォルトで選択される項目を制御しています。

2の処理だと項目が増えようが減ろうが、if文の追加等
は必要ないので楽ですよ。
    • good
    • 0
この回答へのお礼

とても丁寧なご回答ありがとうございます。
2番を参考にさせていただきます!
本当にありがとうございました。

お礼日時:2005/01/21 20:14

ページAのHTMLで、大阪のoptionタグにselected


と記述すればいいのでは?
ページAで受け取った値により、selectedと記述される
optionが変わるようにする、ということ。
例えば、
<select>
<option value="osaka" <?if($POST['chiiki'] == "osaka"){ echo("selected"); } ?>
(同じように東京と沖縄のoptionも記述)
</select>
といった感じに。
参考までに書いたので、間違いなどは訂正してください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。とてもシンプルでわかりやすかったです。こうやればいいんですね。
参考になりました。本当にありがとうございます。がんばります!

お礼日時:2005/01/21 19:55

引数で渡すだけではだめでしょうか?

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。ちょっと確認が遅れてしまいました。はやく一人でいろいろできるようにがんばりたいと思います。ありがとうございます。

お礼日時:2005/01/21 19:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!