[英]PHP + form select options
我有一個看起來像這樣的選擇,它用HTML編寫,不通過任何PHP呈現,
<select name="position">
<option value="left">Left</option>
<option value="right">Right</option>
<option value="centre">Centre</option>
</select>
該值將被發送到數據庫,稍后將作為變量以$v['position']
的形式從數據庫返回,使用此原始表單如何使該變量與varibale匹配為默認選擇?
您沒有指定何時再次顯示表單。 如果用戶立即提交表單,則需要將此代碼段插入每個選項:
<option value="left"<?php echo $v['position'] == 'left' ? ' selected' : ''; ?>>Left</option>
<option value="right"<?php echo $v['position'] == 'right' ? ' selected' : ''; ?>>Right</option>
<option value="centre"<?php echo $v['position'] == 'centre' ? ' selected' : ''; ?>>Centre</option>
要么:
你必須通過PHP迭代變量:(
$html = '<select name="position">';
$opts = array('left', 'right', 'centre');
foreach($opts as $option)
{
$html .= '<option value="' . $option . '"';
$html .= $option == $v['position'] . ' selected' : '';
$html .= '>' . ucfirst($option) . '</option>';
}
$html .= '</select>';
print $html;
您可以在循環中創建選項並檢查當前元素是否等於$v['position']
的值,並相應地設置selected
屬性。
<?php
$options = array('left'=>'Left', 'right'=>'Right', 'centre'=>'Centre');
?>
<select name="position">
<?php foreach($options as $value=>$text):?>
<option value="<?php echo $value ?>"
<?php echo ($v['position'] == $value) ? 'selected="selected"' : '' ?> >
<?php echo $text ?>
</option>
<?php endforeach; ?>
</select>
您無需觸摸HTML就可以使用DOM 。 如果這是您的HTML:
$template = <<< TPL
<select name="position">
<option value="left">Left</option>
<option value="right">Right</option>
<option value="centre">Centre</option>
</select>
TPL;
這是選擇的值:
$value = 'right';
你可以做
$dom = new DOMDocument;
$dom->loadXml($template);
$xPath = new DOMXPath($dom);
$node = $xPath->query(sprintf('//option[@value = "%s"]', $value));
if($node->item(0)) {
$node->item(0)->setAttribute('selected', 'selected');
}
echo $dom->saveXML($dom->documentElement);
這將輸出:
<select name="position">
<option value="left">Left</option>
<option value="right" selected="selected">Right</option>
<option value="centre">Centre</option>
</select>
<select name="position">
<option value="left"<?php echo ($v['position'] == 'left') ? ' selected="selected" : ''; ?>>Left</option>
<option value="right"<?php echo ($v['position'] == 'right') ? ' selected="selected" : ''; ?>>Right</option>
<option value="centre"<?php echo ($v['position'] == 'centre') ? ' selected="selected" : ''; ?>>Centre</option>
</select>
嘗試這個
<select name="position">
<option value="left" <?php echo $v['position']=='left'?'selected="selected"':'' ?> >Left</option>
<option value="right" <?php echo $v['position']=='right'?'selected="selected"':'' ?>>Right</option>
<option value="centre" <?php echo $v['position']=='centre'?'selected="selected"'?:'' >>Centre</option>
</select>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.