2016-06-21 52 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 } ?>