下拉 - 显示之前在循环中选择的内容

时间:2016-06-21 04:39:18

标签: php sql

我的问题是显示先前在while循环中选择的内容。我在非循环设置中找到了一种方法,但循环对我来说是一个问题。

以下代码向我提供了国家/地区(和国家/地区代码)的下拉列表:

<?php 

foreach($countries as $key => $value) { ?>

<option value="<?= $value . ' ' . $key ?>" title="<?= htmlspecialchars($value) ?>"><?= htmlspecialchars($value) ?></option>

<?php } ?>

它运作良好。但想象有人编辑他们的国家,因此我希望显示以前选择的国家。当然,我有一个特定的先前选择的国家的变量...谢谢。

4 个答案:

答案 0 :(得分:1)

试试这个:

<?php 

foreach($countries as $key => $value) { ?>
 <?php if ($previousCountry == $value) ?>
    <option selected value="<?= $value . ' ' . $key ?>" title="<?= htmlspecialchars($value) ?>"><?= htmlspecialchars($value) ?></option>
 <?php else  ?>
    <option value="<?= $value . ' ' . $key ?>" title="<?= htmlspecialchars($value) ?>"><?= htmlspecialchars($value) ?></option>>

<?php } ?>

不确定语法,但您应该检测该值是否等于之前的国家/地区,然后在其上添加选定的属性。

答案 1 :(得分:1)

<?php 
$preselected = 'whatever_previous_selected';

foreach($countries as $key => $value) { ?>

<option value="<?php $value; ?>" title="<?= htmlspecialchars($value) ?>" <?php if($preselected == $value) {echo "selected='selected'"; }?>>
<?= htmlspecialchars($value) ?>
</option>

<?php } ?>

答案 2 :(得分:0)

在编辑中获取ID时使用selected='selected'

<?php 
$id = 1; // In edit you get some value here
foreach($countries as $key => $value) { 
$selected = (isset($id) && $id == $key) ? "selected='selected'" : "";   
?>

<option value="<?= $value . ' ' . $key ?>" title="<?= htmlspecialchars($value) ?>" <?php echo $selected ?>><?= htmlspecialchars($value) ?></option>

<?php } ?>

答案 3 :(得分:0)

试试这个:

<?php 
$prevSelectedCountry;

foreach($countries as $key => $value) { ?>

<option <?php echo ($prevSelectedCountry == $value . ' ' . $key)?"selected='selected'":"" ?> value="<?= $value . ' ' . $key ?>" title="<?= htmlspecialchars($value) ?>"><?= htmlspecialchars($value) ?></option>

<?php } ?>