2010-07-20 3 views
1

나는 다음과 같다있는 선택, 그것은 HTML로 작성된하고있는 PHP를 통해 렌더링되지 않습니다,PHP + 형태의 옵션을 선택

<select name="position">           
<option value="left">Left</option> 
    <option value="right">Right</option> 
    <option value="centre">Centre</option> 
    </select> 

값은 데이터베이스로 전송됩니다 나중에에서 반환됩니다 $v['position']의 형태로 변수로 데이터베이스,이 내 원래의 양식을 사용하여 어떻게 varibale 기본 선택과 일치하는 옵션을 만들 수 있습니까?

답변

0

시도해보기

<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> 
2

양식이 다시 표시되는시기를 지정하지 않았습니다. 사용자가 양식을 제출하면, 당신은 모든 옵션이 조각을 삽입 할 필요가 즉시 경우 :

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

OR :

당신은 :(

$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; 
0
<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> 
PHP를 통해 변수를 반복한다
1

루프에서 옵션을 만들고 현재 요소가 $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> 
1

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> 
관련 문제