2011-09-05 96 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>'; 
} 
相關問題