1

これは PHP に基づいています。

次のような配列を取ることは可能ですか:

$SELECT_INDUSTRY = array("Medical" => "Specialty", "Dental" => "Specialty", "Pediatrics" => "Specialty");

そして、これらの 2 つの値を次のような単純なものに渡します。

<select>
    <option value="$SELECT_INDUSTRY[]">$SELECT_INDUSTRY[]</option>
</select>

ここで、Medical は渡される値であり、Specialty は公開テキストです。

これは、実際の選択ボックスを作成するために使用している関数です。

$SELECT_INDUSTRY = array("Medical", "Dental", "Pediatrics");
$FORM_SELECT_SIZE = 'input-min';
function get_options_industry( $arr = array() ) {
global $FORM_SELECT_SIZE;
echo '<div class="control-group"><label class="control-label" for="industry">Industry</label><div class="controls"><select name="industry" id="industry" class="'.$FORM_SELECT_SIZE.'"><option value=>Select an Industry</option>';
foreach( $arr as $option ) {
    echo '<option>'.$option.'</option>';
}
echo '</select></div></div>';
}
$FORM_FIELD_INDUSTRY = $SELECT_INDUSTRY;

そして、これは私が選択を表示する方法です:

<?php get_options_industry( $FORM_FIELD_INDUSTRY ) ?>

最初の配列値を値フィールドに取り込み、次に 2 番目の配列値を実際の名前に取り込む方法がわかりません。

目標は、フォームに渡される値を取得することであり、公開されている名前とは異なります。上記の配列定義は、これを行う正しい方法ではない可能性があることを認識しています。

解決

以下のいくつかの回答のおかげで、これが私の問題を解決するための最終的な回答です。

$SELECT_INDUSTRY = array("Medical" => "Medical", "Dental" => "Medical", "Pediatrics" => "Medical");
$FORM_SELECT_SIZE = 'input-min';
function get_options_industry( $arr = array() ) {
global $FORM_SELECT_SIZE;
echo '<div class="control-group"><label class="control-label" for="industry">Industry</label><div class="controls"><select name="industry" id="industry" class="'.$FORM_SELECT_SIZE.'"><option value=>Select an Industry</option>';
foreach( $arr as $key => $value ) {
    echo '<option value="'.$value.'">'.$key.'</option>';
}
    echo '</select></div></div>';
}
$FORM_FIELD_INDUSTRY = $SELECT_INDUSTRY;

次に、重複が消去されないように、キーが一意であることを確認する必要があります。

4

3 に答える 3

3

これはどう?

$SELECT_INDUSTRY = array("Medical" => "Specialty", "Dental" => "Specialty", "Pediatrics" => "Specialty");

.... other stuff you already have ....

foreach( $arr as $val => $option ) {
    echo '<option value="'.$val.'">'.$option.'</option>';
}
于 2012-07-11T22:58:33.557 に答える
1

簡単な例...

$SELECT_INDUSTRY = array("Medical" => "Specialty", "Dental" => "Specialty", "Pediatrics" => "Specialty");

echo '<select>';    
foreach ($SELECT_INDUSTRY as $key => $value) {
    echo '<option value="' . $value . '">' . $key . '</option>';
}
echo '</select>';

テキストとして表示するものと値として渡すものに応じて、$keyと$valueを逆にすることができます。私の例でそれを表示した方法は、私にとって最も理にかなっています。

于 2012-07-11T23:00:42.900 に答える
0

これはうまくいきます

$SELECT_INDUSTRY = array("Medical", "Specialty", "Dental", "Specialty", "Pediatrics", "Specialty");

echo '<select>';    
foreach ($SELECT_INDUSTRY as $key => $value) {
    echo '<option value="' . $value . '">' . $key . '</option>';
}
echo '</select>';
于 2017-05-30T10:59:51.020 に答える