简体   繁体   English

PHP生成HTML单选按钮

[英]PHP to generate HTML radio buttons

Ok, im unsure on how to explain what i want (probably why i cant figure out how to do it) but basically, I have the following html form: 好的,我不确定如何解释我想要什么(可能为什么我无法弄清楚该怎么做),但是基本上,我有以下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>

What i'm wanting to do is some sort of PHP loop to print whichever one is selected, then turn it into a function so i could reuse it for different questions (like the one below) therefore cutting down on the amount of HTML is used.. 我想要做的是某种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>

Any ideas? 有任何想法吗? or tips, im pretty new to php so as newbie friendly as possible please! 或提示,我对php很新,因此请尽可能友好地使用新手! Thanks in advance! 提前致谢!

Your function could look something like this: 您的函数可能如下所示:

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;
}

And with this function, you can easily output your options: 使用此功能,您可以轻松输出选项:

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

Demo . 演示

It's so easy: 它是如此容易:

<?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);
?>

$options- No of options you want $ options-您不需要的选项

$sel_val- Selected value of the vote to show it selected $ sel_val-选定的投票值以显示为已选中

$name - Name From which you want the values in the post $ name-想要发布中的值的名称

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');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM