条件に該当する分だけ表示させるプルダウンでのselectedのつけ方について(特定の要素をデフォルトで表示させる)
- 評価
- クリップ 2
- VIEW 2,923
CSVやMySQLなどで条件に該当する要素をあるだけ書き出してプルダウンで表示させます。
その後、数多くある要素の中からある要素をデフォルトで表示させたいです。
<option>の中にselectedを使えばよいということはイメージできますが
1つ1つ<option>~</option>で書かれていないプルダウンに
私が指定した要素(横浜市と仮定)をデフォルトで表示させることができますでしょうか。
具体例としては以下のような文字列です。
<select name="schoolcity<?=$s?>">
<option value="">市</option>
<option value="">---------</option>
<?
$recordSet=mysql_query("SELECT * FROM city ORDER BY city_id");
while ($LowCity = mysql_fetch_assoc($recordSet)){
$SCITY_ID=htmlspecialchars($LowCity['city_id']);
$SCITY_NAME=htmlspecialchars($LowCity['city_name']);
?>
<option value="<?=$SCITY_ID?>" class="<?=$SCITY_ID?>"><?=$SCITY_NAME?></option>
<?}?>
</select>
ちなみに<option selected="横浜市"(とある要素)>ではうまくいきませんでした。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
0
phpというより、htmlの問題ですね
<select>
<option value=0>0</option>
<option value=1 selected="selected">1</option>
<option value=2>2</option>
</select>
<?php
function h($str)
{
return htmlspecialchars($str, ENT_QUOTES);
}
$recordSet = mysql_query("SELECT * FROM city ORDER BY city_id");
?>
<select name="schoolcity">
<option value="">市</option>
<option value="">---------</option>
<?php while ($LowCity = mysql_fetch_assoc($recordSet)) : ?>
<?php if (条件式) : ?>
<option value="<?= h($LowCity['city_id']) ?>" class="<?= h($LowCity['city_id']) ?>" selected="selected"><?= h($LowCity['city_name']) ?></option>
<?php else : ?>
<option value="<?= h($LowCity['city_id']) ?>" class="<?= h($LowCity['city_id']) ?>"><?= h($LowCity['city_name']) ?></option>
<?php endif; ?>
<?php endwhile; ?>
</select>
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
//Kosuke_Shibuyaさんの回答を曲解してるのかなあ。
とりあえず、別のアプローチを。
例えば、画面が表示されたタイミングで該当プルダウンを
JavaScriptで処理します。
先頭から順次参照して特定の要素がみつかったら
そのエントリを selectedIndex に設定する、と。
//余計に混乱させちゃった?
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
ちょっと見かけたのでこれで合っているかわからないけど
alter table SQLを使って県庁所在地カラムを用意します。
select id from kanagawa where id=(select kentyou from kanagawa);
のように取り出します。
while($hairetu=$dbhnd->fetch_assoc()){
if($hairetu==$kentyou) printf("<option selected=\"selected\" value=\"%i\">%s</option>",$hairetu["id"],$hairetu["name"]);
else printf("<option value=\"%i\">%s</option>",$hairetu["id"],$hairetu["name"]);
}
のように出力すればよろしいのではないかと思いますが。
なんせ実証実験してなくてすみません。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
checkベストアンサー
-1
やりたい事と違っていたらごめんなさいです。
もともと登録した人がいるわけですよね。
それなら登録者テーブルなどがありますよね。
もしそうなら、
$kekkasetto=$dbhnd->query("select * from tourokusya where tourokusyamei='tourokusya'");
$hairetsu=$dbhnd->fetch_assoc();
$sumai=$hairetsu["sumai"];
$kekkasetto=$dbhnd->query("select * from kanagawa ");
while($hairetsu=$dbhnd->fetch_assoc()){
if($hairetsu["shityousonn"]==$sumai) printf("<option selected=\"selected\" value=\"%i\">%s</option>",$hairetsu["id"],$hairetsu["shityousonmei"]);
if($hairetsu["shityouson"]!=$sumai"]) printf("<option value=\"%i\">%s</option>",$hairetsu["id"],$hairetsu["shityouson"]);
}
とすれば、ご希望の状況になると思います。
なんせ実証実験してないので申し訳ありません。
勘違いであればその旨おしらせください。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.33%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
kei344
2016/04/22 23:51
コードの提示はコメントでなく、質問文に追記する形で掲載ください。また、コードはコードブロックで囲んでください。```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「</>」ボタンを押すとコードブロックになります。