2016-06-21 51 views
0

我的问题是显示先前在while循环中选择的选项。我找到了一种在非循环设置中完成它的方法,但循环对我来说是一个问题。下拉式 - 先前在循环中显示的选项

下面的代码给我一个下降的国家(和国家代码)的下降:

<?php 

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

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

<?php } ?> 

和它的作品好。但想象一下,有人编辑他们的国家,因此我很乐意展示之前选择的国家。当然,我有一个变量与特定的先前选定的国家...谢谢。

+1

提示:'<='或'short_tags'并不总是有效。用'<?php echo'替换,以确保您的代码始终可以工作,而不管php.ini设置如何 – zanderwar

+0

也很有帮助! –

回答

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

不知道的语法,但如果该值等于前面的国家,那么你把选择属性就可以了,你应该察觉。

0

当您在编辑中获得标识时使用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 } ?> 
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 } ?>