2011-09-05 97 views
1

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

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

现在,对于每个按钮,我都有一个特定的'div id'来显示。我用一个简单的if语句来检查什么是每个的价值选择:

//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> 
<? } ?> 

我要重复上面的代码为每一个选择框,我敢肯定,是不是一个好方法。我想知道这个过程是否能以更短的方式完成?

回答

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

你可以把你的输出到一个数组,然后执行:

<?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); ?> 
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>'; 
} 
相关问题