【问题标题】:PHP - PRE-select drop down optionPHP - 预选下拉选项
【发布时间】:2010-06-13 00:27:00
【问题描述】:

使用以下 URL 中的示例:http://www.kavoir.com/2009/02/php-drop-down-list.html

如何让该下拉菜单预先选择“Apple”等选项之一?

编辑:添加信息

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;

【问题讨论】:

  • 哦,那太乱了。除非绝对必要,否则标签内不应有样式声明。
  • :-) 是的,我知道。我现在正在尝试获得功能。我会尽快清理它,因为我可以让下拉菜单工作。我将尝试这些建议,看看会发生什么。

标签: php


【解决方案1】:

我会在定义默认值的generateSelect 函数中添加另一个参数。您可以使用选项的idname 执行此操作。对于以下内容,我将使用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');

【讨论】:

  • 知道了。我的问题是我没有在我的表中使用“html”。相反,我实际上是在输入: 通过将 $html 放在它的位置并使用您的代码,它现在可以完美运行。非常感谢
  • 优秀。这就是 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;
}

【讨论】:

  • 我不确定如何正确格式化它。我喜欢你的简单回答,希望我能让它发挥作用。我在表格中有我的下拉菜单。我已经编辑了我的原始帖子以显示我的回声代码。你介意看一下吗?我已经大大简化了。
  • 这一行:function generateSelect($name, $options, $optionToSelect) { 帮助我更好地理解这个函数发生了什么非常感谢!
  • 仅供参考,通过添加 $name = '',它所做的只是设置一个默认值,这样如果没有输入特定值,它就会默认为那里的任何值。 $name 和 $options 是必需的,但我会通过 $optionToSelect = '' 使 $op​​tionToSelect 成为可选
【解决方案3】:
<?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>

【讨论】:

    猜你喜欢
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多