2010-06-13 1 views
3

: http://www.kavoir.com/2009/02/php-drop-down-list.htmlPHP - 드롭에게 PRE-선택 아래 옵션 다음 URL의 예를 사용

I 메뉴 드롭 다운이 가질 수있는 방법 등의 '애플'과 같은 옵션 중 하나를 사전을-선택?

편집 : 추가 정보

function showForm() 

{ 
global $sProduct, $name, $product, $header_file, $footer_file, $form_width, $form_background, $form_border_color, $form_border_width, $form_border_style, $cell_padding, $left_col_width, $font_size; 
include $header_file; 
echo <<<EOD 

<form method="post" class="cForm"> 
<table style="width:{$form_width}; padding:20px 7px 0px 7px; font-size:{$font_size}; background-color:{$form_background};" class="contactForm"> 
<tr> 
<td style="width:{$left_col_width}; text-align:left; vertical-align:center; padding:{$cell_padding}; font-weight:bold; {$name[3]}">{$name[0]}</td> 
<td style="text-align:left; vertical-align:top; padding:{$cell_padding};"><input type="text" name="{$name[1]}" value="{$name[2]}" size="25"/></td> 
</tr> 
<tr> 
<td style="width:{$left_col_width}; text-align:left; vertical-align:center; padding:{$cell_padding}; font-weight:bold;">{$product[0]}</td> 
<!--<td style="text-align:left; vertical-align:top; padding:{$cell_padding};"><select name="{$product[1]}">--> 
<td style="text-align:left; vertical-align:top; padding:{$cell_padding};"> 
<select name="{$product[1]}"> 
    <option value="1"></option> 
    <option value="2">item 2</option> 
    <option value="3">item 3</option> 
    <option value="4">item 4</option> 
    <option value="5">item 5</option> 
    <option value="6">item 6</option> 
</select> 
</td> 
</tr> 
<td style="width:{$left_col_width}; text-align:left; vertical-align:center; padding:{$cell_padding}; font-weight:bold; {$code[3]}">{$code[0]}</td> 
<td style="text-align:left; vertical-align:top; padding:{$cell_padding};"><input type="submit" name="submit" value="Submit" style="border:1px solid #999;background:#E4E4E4;" /></td> 
</tr> 
<tr> 
<td colspan="2" style="font-size:10px; text-align:left; vertical-align:middle; padding:{$cell_padding};"> 
0:(var_product[0] = ({$product[0]})) <br/> 
1:(var_product[1] = ({$product[1]})) <br/> 
2:(var_product[2] = ({$product[2]}))<br/> 
3:(var_product[3] = ({$product[3]}))<br/> 
4:(var_sProduct = ({$sProduct}))<br/> 
</td> 
</tr> 
</table> 
</form> 

EOD; 
+1

오, 즉 지저분한입니다. 절대적으로 필요한 경우를 제외하고는 태그 안에 스타일 선언을해서는 안됩니다. –

+2

:-) 그래, 알아. 나는 지금 기능을 얻으려고 노력하고있다. 내가 드롭 다운 작업을 할 수있게 되 자마자 나는 그것을 치울 것이다. 나는 그 제안을 시도하고 어떤 일이 일어나는지 볼 것입니다. – Phil

답변

7

기본값이 무엇인지 정의하는 generateSelect 함수에 다른 매개 변수를 전달합니다. 옵션의 id 또는 name 중 하나를 사용하여이 작업을 수행 할 수 있습니다. 다음을 위해, 나는 더 명확하게하기 위해 name을 사용할 것이다.

function generateSelect($name = '', $options = array(), $default = '') { 
    $html = '<select name="'.$name.'">'; 
    foreach ($options as $option => $value) { 
     if ($option == $default) { 
      $html .= '<option value='.$value.' selected="selected">'.$option.'</option>'; 
     } else { 
      $html .= '<option value='.$value.'>'.$option.'</option>'; 
     } 
    } 

    $html .= '</select>'; 
    return $html; 
} 

/* And then call it like */ 
$html = generateSelect('company', $companies, 'Apple'); 
+0

gotit을 실행하면 $ optionToSelect를 선택적으로 만들 수 있습니다. 내 문제는 내 테이블에 "html"을 사용하지 않는다는 것이 었습니다. 대신에 실제로 입력했다 : <선택 이름 = "{$ 제품 [1]}"> <옵션 값 = "1"> <옵션 값 = "2"> 항목 2 <옵션 값 = "3 "> 항목 3 <옵션 값 ="4 "> 항목 4 <옵션 값 ="5 "> 항목 5 <옵션 값 ="에 $ HTML을 배치하여 6 "> 항목 6 그 코드를 사용하면 코드가 완벽하게 작동합니다. 대단히 감사합니다 – Phil

+0

우수. 여기서 반복적 인 작업을 자동화하여 PHP (및 해당 언어에 대한 동적 언어)가 실제로 빛나는 곳입니다. 계속 로큰롤 ' –

2

당신이 당신의 옵션을 에코 다음과 같이 에코 경우 :

<option value="apple" selected="selected">Apple</option> 

또는 다음과 같이 JS를 사용할 수 있습니다

var dropDownList = document.getElementById('dropDownListId'); 
dropDownList.options[optionIndex].selected = true; 

내가 불통 이 기능은 약간 있지만 사용할 수는 있습니다 :

function generateSelect($name, $options, $optionToSelect) { 
    $html = '<select name="'.$name.'">'; 
    foreach ($options as $option => $value) { 
     if($value == $optionToSelect) 
      $html .= '<option value="'.$value.'" selected="selected">'.$value.'</option>'; 
     else 
      $html .= '<option value="'.$value.'">'.$value.'</option>'; 
    } 
    $html .= '</select>'; 
    return $html; 
} 
+0

올바르게 서식을 지정하는 방법을 모르겠습니다. 나는 당신의 대답의 단순함을 좋아하고 그것을 얻을 수 있기를 바랍니다. 테이블에 내 드롭 다운 메뉴가 있습니다. 내 에코의 코드를 보여주기 위해 원래 게시물을 편집했습니다. 좀 봐도 될까요? 나는 그것을 크게 단순화했다. – Phil

+0

이 줄은 : function generateSelect ($ name, $ options, $ optionToSelect) { 이 함수에서 무슨 일이 벌어 졌는지 더 잘 이해할 수 있도록 도와주었습니다. 대단히 감사합니다! – Phil

+1

참고로 $ name = ''을 (를) 추가하면 모든 값이 기본값으로 설정되므로 특정 값을 입력하지 않으면 기본값이 그대로 유지됩니다. $ name과 $ options는 필수 항목이지만 $ optionToSelect = '' –

0
<?php 
$selected_fruit= 2; 

$opt_txt=function($opt_val){   
    $selected=($selected_fruit==$opt_val)?"selected=selected":""; 
    $opt_txt= "value= \"".$opt_val."\" ".$selected; 
    echo $opt_txt; 
    } 
?> 

<select name="{$product[1]}"> 
    <option <?php $opt_txt(0) ?> ></option> 
    <option <?php $opt_txt(2) ?> >apple</option> 
    <option <?php $opt_txt(3) ?> >banana</option> 
    <option <?php $opt_txt(4) ?> >pear</option> 
    <option <?php $opt_txt(5) ?> >peach</option> 
    <option <?php $opt_txt(6) ?> >apricot</option> 
</select>