2013-11-14 60 views
0

好吧,即時通訊不能確定如何解釋我想要什麼(也許就是爲什麼我無法弄清楚如何做到這一點),但基本上,我有以下的HTML表單:PHP生成HTML單選按鈕

   <p class="ratingButtons"> 
        <input type="radio" class="spacing" name="moRating1" value="1">1 
        <input type="radio" class="spacing" name="moRating1" value="2">2 
        <input type="radio" class="spacing" name="moRating1" value="3">3 
        <input type="radio" class="spacing" name="moRating1" value="4">4 
        <input type="radio" class="spacing" name="moRating1" value="5">5 
        <input type="radio" class="spacing" name="moRating1" value="6">6 
       </p> 

什麼我想要做的是某種PHP循環打印哪一個被選中,然後把它變成一個函數,所以我可以重複使用它的不同的問題(如下所示) 因此削減的HTML量被使用..

    <p class="ratingButtons"> 
        <input type="radio" class="spacing" name="moRating2" value="1">1 
        <input type="radio" class="spacing" name="moRating2" value="2">2 
        <input type="radio" class="spacing" name="moRating2" value="3">3 
        <input type="radio" class="spacing" name="moRating2" value="4">4 
        <input type="radio" class="spacing" name="moRating2" value="5">5 
        <input type="radio" class="spacing" name="moRating2" value="6">6 
       </p> 

任何想法?或提示,即時通訊相當新的PHP,以儘可能新手友好請! 在此先感謝!

回答

3

你的函數可以是這個樣子:

function generateRadioButtons($name, $values = 6) { 
    $o = '<p class="ratingButtons">' . "\n"; 
    for ($v = 1; $v <= $values; $v++) { 
     $selected = !empty($_POST[$name]) && $_POST[$name] == $v ? ' checked="checked"' : ''; 
     $o.= '<input type="radio" class="spacing" name="' . $name . '" value="' . $v . '"' . $selected . '>' . $v . "\n"; 
    } 
    $o.= '</p>' . "\n"; 
    return $o; 
} 

有了這個功能,您可以輕鬆地輸出你的選擇:

echo generateRadioButtons('moRating1'); 
echo generateRadioButtons('moRating2'); 

Demo

+0

這正是我所需要的,你可以運行我通過你得到的地方$ v和$ o從?只是讓我理解代碼更好一點 – box

+2

'$ v'是一個用於循環的計數器變量。 '$ o'是存儲HTML的變量。 –

1

就是這麼簡單:

<?php 
function radio_selected($selected,$array){ 
$len=count($array); 
for($i=0;$i < $len;++$i){ 
$num=$i+1; 
$class=($selected==$array[$i])?'checked="checked"':''; 
$a.='<input type="radio" class="spacing" name="moRating'.$num.'" value="'.$num.'"'.$class.'> '.$num; 
} 
return $a; 
} 
// --- And you can use it now 
$array=Array('a','b','c'); 
$selected=$_POST['b']; // For example b 
echo radio_selected($selected,$array); 
?> 
1

$選項 - 選項沒有你想

$ sel_val-選投票的值,顯示它選擇

$名字 - 名字命名,距離想要在後的值

function rating_buttons($options,$sel_value,$name) 
    { 
     $output ='<p class="ratingButtons">'; 
     for($i=0;$i<$options;$i++) 
     { 
     $value=$i+1; 
     $output .= '<input type="radio" class="spacing" '; 
      if($sel_value==$value) 
       $output .='checked="Checked"'; 
      else 
       $output .=''; 

       $output .='name="'.$name.'" value="'.$value.'">'.$value; 
     } 
     $output .='</p>'; 
     echo $output; 
    } 


    rating_buttons(5,3,'abc');