1

次のような HTML ドロップダウン メニューがあるとします。

<p>General Medical History: 
<select name="otherproblem">
    <option value="Nothing">Nothing</option>
    <option value="Allergy: Penicillin">Allergy: Penicillin</option>
    <option value="Aspirin">Aspirin</option>
    <option value="Erythromycin">Erythromycin</option>
    <option value="Latex or Rubber Products">Latex or Rubber Products</option>
    <option value="Codeine">Codeine</option>
    <option value="Tetracycline">Tetracycline</option>
    <option value="Germicides/Pesticides, Foods">Germicides/Pesticides, Foods</option>
    <option value="Other">Other</option>
    <option value="Asthma">Asthma</option>
    <option value="Bleeding Disorders">Bleeding Disorders</option>
    <option value="Diabetes">Diabetes</option>
    <option value="Epilepsy">Epilepsy</option>
    <option value="GI disorders">GI disorders</option>
    <option value="Heart disease">Heart disease</option>
    <option value="Hepatitis">Hepatitis</option>
    <option value="Jaundice">Jaundice</option>
    <option value="Liver disease">Liver disease</option>
    <option value="Neoplasm">Neoplasm</option>
    <option value="Psychiatric Problems">Psychiatric Problems</option>
    <option value="Respiratory diseases">Respiratory diseases</option>
    <option value="Rheumatic fever">Rheumatic fever</option>
</select>
</p>

オプションの 1 つを選択して、特定の値を VARCHAR としてデータベースに追加します。

今、私は編集のためにそれらを呼び戻しているので、入力されたデータを同じフォームに戻す必要があります。そこでは、他のすべてのものをテキスト ボックスに取得できます。しかし、データベースから値を取得して、このドロップダウン リストで選択する方法がわかりません。私ができることは、db から取得した値を次の名前の変数に保存することだけです。 $otherproblem

4

4 に答える 4

1

これを行う方法は次のとおりです。

<?php

$otherproblem = "Aspirin";

$dropdown = array(
    "Nothing",
    "Allergy: Penicillin",
    "Aspirin",
    "Erythromycin",
    "Latex or Rubber Products",
    "Codeine",
    "Tetracycline",
    "Germicides/Pesticides, Foods",
    "Other",
    "Asthma",
    "Bleeding Disorders",
    "Diabetes",
    "Epilepsy",
    "GI disorders",
    "Heart disease",
    "Hepatitis",
    "Jaundice",
    "Liver disease",
    "Neoplasm",
    "Psychiatric Problems",
    "Respiratory diseases",
    "Rheumatic fever"
);

?>
<p>General Medical History: 
<select name="otherproblem">
    <?php foreach ($dropdown as $name): ?>
        <option <?php if ($otherproblem == $name) print('selected="selected"');?> value="<?php print($name);?>"><?php print($name);?></option>
    <?php endforeach; ?>
</select>
</p>

方法2:

<?php
    $otherproblem = "Erythromycin";
?>
<p>General Medical History: 
<select name="otherproblem">
    <option <?php if($otherproblem == "Nothing"){print('selected="selected"');}?> value="Nothing">Nothing</option>
    <option <?php if($otherproblem == "Allergy: Penicillin"){print('selected="selected"');}?> value="Allergy: Penicillin">Allergy: Penicillin</option>
    <option <?php if($otherproblem == "Aspirin"){print('selected="selected"');}?> value="Aspirin">Aspirin</option>
    <option <?php if($otherproblem == "Erythromycin"){print('selected="selected"');}?> value="Erythromycin">Erythromycin</option>
    <option <?php if($otherproblem == "Latex or Rubber Products"){print('selected="selected"');}?> value="Latex or Rubber Products">Latex or Rubber Products</option>
    <option <?php if($otherproblem == "Codeine"){print('selected="selected"');}?> value="Codeine">Codeine</option>
    <option <?php if($otherproblem == "Tetracycline"){print('selected="selected"');}?> value="Tetracycline">Tetracycline</option>
    <option <?php if($otherproblem == "Germicides/Pesticides, Foods"){print('selected="selected"');}?> value="Germicides/Pesticides, Foods">Germicides/Pesticides, Foods</option>
    <option <?php if($otherproblem == "Other"){print('selected="selected"');}?> value="Other">Other</option>
    <option <?php if($otherproblem == "Asthma"){print('selected="selected"');}?> value="Asthma">Asthma</option>
    <option <?php if($otherproblem == "Bleeding Disorders"){print('selected="selected"');}?> value="Bleeding Disorders">Bleeding Disorders</option>
    <option <?php if($otherproblem == "Diabetes"){print('selected="selected"');}?> value="Diabetes">Diabetes</option>
    <option <?php if($otherproblem == "Epilepsy"){print('selected="selected"');}?> value="Epilepsy">Epilepsy</option>
    <option <?php if($otherproblem == "GI disorders"){print('selected="selected"');}?> value="GI disorders">GI disorders</option>
    <option <?php if($otherproblem == "Heart disease"){print('selected="selected"');}?> value="Heart disease">Heart disease</option>
    <option <?php if($otherproblem == "Hepatitis"){print('selected="selected"');}?> value="Hepatitis">Hepatitis</option>
    <option <?php if($otherproblem == "Jaundice"){print('selected="selected"');}?> value="Jaundice">Jaundice</option>
    <option <?php if($otherproblem == "Liver disease"){print('selected="selected"');}?> value="Liver disease">Liver disease</option>
    <option <?php if($otherproblem == "Neoplasm"){print('selected="selected"');}?> value="Neoplasm">Neoplasm</option>
    <option <?php if($otherproblem == "Psychiatric Problems"){print('selected="selected"');}?> value="Psychiatric Problems">Psychiatric Problems</option>
    <option <?php if($otherproblem == "Respiratory diseases"){print('selected="selected"');}?> value="Respiratory diseases">Respiratory diseases</option>
    <option <?php if($otherproblem == "Rheumatic fever"){print('selected="selected"');}?> value="Rheumatic fever">Rheumatic fever</option>
</select>
</p>
于 2013-01-13T23:54:47.690 に答える
1

2 つのオプションがあります。1 つは、次の行に沿ってリストをロードすることです。

<?
    $otherproblem = "Erythromycin";
?>
<p>General Medical History: 
<select name="otherproblem">
<?
$result = mysql_query("query to get the list of options");
while($row=mysql_fetch_array($result)){
if(strcmp($row['Problem'],$otherproblem)===0){ $selected = 'selected="selected"'; } else { $selected = ""; }
?>
<option <?=$other?> value="<?=$row['Problem'];?>"><?=$row['Problem'];?></option>
<? } ?>

汚いですが、現在のセットアップ方法で動作します。リストの一番上で項目を選択してから、次のように完全なリストを作成するだけで、リグを作成することもできます。

<?
    $otherproblem = "Erythromycin";
?>
<p>General Medical History: 
<select name="otherproblem">
<option selected="selected" value="<?=$otherproblem;?>"><?=$otherproblem;?></option>
<?
$result = mysql_query("query to get the list of options");
while($row=mysql_fetch_array($result)){
?>
<option value="<?=$row['Problem'];?>"><?=$row['Problem'];?></option>
<? } ?>

これを行うためのはるかに優れた方法がありますが、データをどのように引き出しているかを確認しなくても、これら 2 つのオプションはどのような場合でも機能します。

于 2013-01-14T00:08:16.013 に答える
1

各オプション タグを次のように変更します。

<option value="Nothing" <?=$otherproblem === 'Nothing' ? 'selected="selected"' : ''?>>Nothing</option>

それぞれがデータベースからの値をオプションタグの値と比較し、それらが等しい場合は選択された属性を追加する必要があります。

于 2013-01-13T23:51:34.863 に答える
1

多くの場合、オプションのリストもデータベースからロードします。リストをループして、<option>その場でタグを作成します。その際、作成中のオプション値と以前の送信から取得した値を比較し、それらが一致する場合は、オプション タグに「selected」属性を追加します。

于 2013-01-13T23:52:51.560 に答える