使用 PHP 数组循环 HTML 无线电


Looping HTML radio using PHP array

我将如何将以下html代码更改为一个较短的PHP数组,我可以在将其转换为函数时重用该数组。

                <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
for ($i = 0; $i < count($array); ++$i) {
    print $array[$i];
}
?>

但我真的很困惑我如何发布结果并为具有不同名称的类似表单部分重复它,例如"moRating2"

像这样的东西也许是为了功能?

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

谁能帮我? PHP新手,目前有点不知所措,但总的来说,我想通过使用循环来修剪HTML重复,然后我将其变成一个函数以在类似的HTML表单问题中重用...如果这有任何意义

感谢您的帮助!

您提供的函数运行良好。 你只需要把它包围在一个表单中,添加一个提交按钮,你就有一个工作表单。 我在想这样的事情:

function generateRadioButtons($destination, $name, $values = 6) {
    $o = '<form name="my_form" action="' . $destination . '" method="post">
        <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><input type="submit" /></form>' . "'n";
    return $o;
}

在这里,您可以输入目的地,这是您提交表格时将转到的页面。 例如:

echo generateRadioButtons("destination.php", "my_name", 4);

将创建您的单选按钮,按下"提交"后,您将被转发到目的地.php,在那里您可以使用

echo $_POST['my_name'];

试试这个来传递循环

for ($i = 0; $i < count($array); $i++) 
{
?>
<input type="radio" class="spacing" name="moRating1" value="<?php echo $i; ?>"><?php echo $i; ?>
<?php
}
这对

我有用:

function generateRadio ($name, $count = 6, $checked = '') {
    $output = '<p class="ratingButtons">'."'n";
    for($i=1; $i<=6; $i++) {
        $checkedStr = '';
        if($i == $checked) {$checkedStr = ' checked';}
        $output .= '<input type="radio" class="spacing" name="'.$name.'" value="'.$i.'"'.$checkedStr.'>'.$i.'<br />'."'n";
    }
    $output.='</p>';
    return $output;
}
echo generateRadio('moRating1', 6, 3);

当然,这应该在表单中,例如:

<form method="post">
    <?php echo generateRadio('moRating1')?>
</form>