我有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>
<? } ?>
我必须为每个选择框重复上面的代码,我相信这不是一个好方法。我想知道这个过程是否可以用更短的方式完成?
答案 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>';
}