PHP+表单选择选项
我有一个选择,看起来像这样,它是用HTML编写的,不通过任何php呈现PHP+表单选择选项,php,forms,select,Php,Forms,Select,我有一个选择,看起来像这样,它是用HTML编写的,不通过任何php呈现 <select name="position"> <option value="left">Left</option> <option value="right">Right</option> <option value="centre">Cen
<select name="position">
<option value="left">Left</option>
<option value="right">Right</option>
<option value="centre">Centre</option>
</select>
该值被发送到数据库,然后以$v['position']的形式作为变量从数据库返回,使用此表单和我的原始表单,如何使与变量匹配的选项成为默认选择?您没有指定表单再次显示的时间。 如果在用户提交表单时立即执行,则需要在每个选项中插入此代码段:
<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;
您没有指定窗体再次显示的时间。 如果在用户提交表单时立即执行,则需要在每个选项中插入此代码段:
<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;
试试这个
<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>
您可以在循环中创建选项,检查当前元素是否等于$v['position']中的值,并相应地设置所选属性
<?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>
您可以在循环中创建选项,检查当前元素是否等于$v['position']中的值,并相应地设置所选属性
<?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。如果这是您的HTML:
$template = <<< TPL
<select name="position">
<option value="left">Left</option>
<option value="right">Right</option>
<option value="centre">Centre</option>
</select>
TPL;
你能行
$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>
您可以使用而不必触摸HTML。如果这是您的HTML:
$template = <<< TPL
<select name="position">
<option value="left">Left</option>
<option value="right">Right</option>
<option value="centre">Centre</option>
</select>
TPL;
你能行
$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>