PHP具有相同选项的不同选择框

时间:2011-09-05 20:05:57

标签: php html select

我有4个不同的选择框(从下拉列表中选择一个选项)。他们都有相同的选择。例如,每个选择框都有以下选项:“Div 1”,“Div 2”,“Div 3”,“Div 4”。 假设,以下是在每个选择框中选择的4个值。

$select1 = 'Div 1'
$select2 = 'Div 4'
$select3 = 'Div 2'
$select4 = 'Div 1'

现在,对于每个按钮,我都会显示一个特定的“div id”。我使用简单的if语句来检查每个select的值是什么:

//show content for button 1:
if ($select1 == 'Div 1'){ ?>
<div id="div1"> .... </div>
<? } else if ($select1 == 'Div 2'){ ?>
<div id="div2"> .... </div>
<? } 
else if ($select1 == 'Div 3'){ ?>
<div id="div3"> .... </div>
<? }
else if ($select1 == 'Div 4'){ ?>
<div id="div4"> .... </div>
<? } ?>

我必须为每个选择框重复上面的代码,我相信这不是一个好方法。我想知道这个过程是否可以用更短的方式完成?

3 个答案:

答案 0 :(得分:2)

写一个函数:

function writeDiv($id) {
    switch($id) {
        case 'div1':
            echo '<div id="div1">...';
            break;
        case 'div2':
            echo '<div id="div2">...';
            break;
        ...
    }
}

然后像这样使用它:

writeDiv($select1);
writeDiv($select2);
writeDiv($select3);
writeDiv($select4);

答案 1 :(得分:1)

您可以将输出放入数组中,然后执行:

<?php echo $arr[$select1]; ?>

如果无法将此数据放入数组,请将else / if语句更改为开关并将其包装到函数中

get_html_by_id($id)
{
var $html = "";
    switch($id)
    {
        case "DIV 1":
            $html= "<div 1 />"
            break;
        case "DIV 2":
            $html = "<div 2 />"
            break;
        default:
            break;
    }
    return $html;
}

<?php echo get_html_by_id($select1); ?>

答案 2 :(得分:1)

有没有想过使用数组?

$selects = array(
    array('tag'=>'Div 1', 'content'=>'...'),
    array('tag'=>'Div 4', 'content'=>'...'),
    array('tag'=>'Div 2', 'content'=>'...'),
    array('tag'=>'Div 1', 'content'=>'...'),
);

foreach ( $selects as $select )
{
    print '<div id="'.$select['tag'].'">'.$select['content'].'</div>';
}