简体   繁体   English

下拉菜单-显示先前在循环中选择的

[英]Drop down - show previously selected in loop

my problem is to show previously selected in a while loop. 我的问题是在while循环中显示先前选择的内容。 I found a way to do it in not-loop setup, but a loop is a problem for me. 我找到了一种在非循环设置中执行此操作的方法,但是循环对我来说是个问题。

The following code give me a drop down of countries (and country code): 以下代码为我提供了一些国家(和国家代码)的下拉列表:

<?php 

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

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

<?php } ?>

And it works good. 而且效果很好。 But imagine someone edit their country, thus I would love to show previously selected country. 但是,假设有人编辑他们的国家/地区,因此,我希望展示以前选择的国家/地区。 Of course I have a variable with the specific previously selected country... Thanks. 当然,我有一个与先前选择的特定国家/地区对应的变量...谢谢。

try this: 尝试这个:

<?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 } ?>

Not sure with the syntax but you should detect if the value is equal to the previous country then you put selected attribute on it. 不确定语法,但是您应该检测该值是否等于先前的国家/地区,然后将选定的属性放在上面。

<?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 } ?>

Use selected='selected' when you get id in edit. 当您在编辑中获取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 } ?>

try this: 尝试这个:

<?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 } ?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM