私は私のPHPにあります
$sel = "
<option> one </option>
<option> two </option>
<option> thre </option>
<option> four </option>
";
インラインURL = site.php?sel=one
があるとしましょう
これらのオプションを変数に保存しなかった場合、この方法で、オプションの1つを$_GET[sel]
と等しい値に選択することができます。
<option <?php if($_GET[sel] == 'one') echo"selected"; ?> > one </option>
<option <?php if($_GET[sel] == 'two') echo"selected"; ?> > two </option>
<option <?php if($_GET[sel] == 'three') echo"selected"; ?> > three </option>
<option <?php if($_GET[sel] == 'four') echo"selected"; ?> > four </option>
しかし、問題は、多くのオプションがあり、その変数を何度も呼び出す必要があるため、これらのオプションを変数に保存する必要があることです。
value = $_GET[sel]
でそのオプションを選択する方法はありますか?
現在選択されているオプションを確認するには、オプションの配列を使用します。
$options = array( 'one', 'two', 'three' );
$output = '';
for( $i=0; $i<count($options); $i++ ) {
$output .= '<option '
. ( $_GET['sel'] == $options[$i] ? 'selected="selected"' : '' ) . '>'
. $options[$i]
. '</option>';
}
補足:2つのオプションの文字列表現が同じである場合、値を各要素の何らかのidに定義すると、問題が発生する可能性があります。
foreach($array as $value=>$name)
{
if($value == $_GET['sel'])
{
echo "<option selected='selected' value='".$value."'>".$name."</option>";
}
else
{
echo "<option value='".$value."'>".$name."</option>";
}
}
これは、三項演算子を使用してselected = selectedを設定する単純な例です
<?php $plan = array('1' => 'Green','2'=>'Red' ); ?>
<select class="form-control" title="Choose Plan">
<?php foreach ($plan as $key => $value) { ?>
<option value="<?php echo $key;?>" <?php echo ($key == '2') ? ' selected="selected"' : '';?>><?php echo $value;?></option>
<?php } ?>
</select>
$_GET['sel']
の引用符がありません-これを修正すると、問題をより早く解決できる可能性があります:)
foreach ($array as $value => $name) {
echo '<option value="' . htmlentities($value) . '"' . (($_GET['sel'] === $value) ? ' selected="selected"') . '>' . htmlentities($name) . '</option>';
}
これはかなりきちんとしています、そして、私は自明です。