0

我将如何将以下 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 表单问题中重用......如果这有任何意义

谢谢您的帮助!

4

3 回答 3

1

您提供的功能运行良好。您只需将其包围在一个表单中并添加一个提交按钮,您就有了一个工作表单。我在想这样的事情:

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

将创建您的单选按钮,然后按“提交”,您将被转发到destination.php,您可以在其中使用

echo $_POST['my_name'];
于 2013-11-14T14:01:08.080 回答
0

试试这个来传递一个循环

for ($i = 0; $i < count($array); $i++) 
{
?>
<input type="radio" class="spacing" name="moRating1" value="<?php echo $i; ?>"><?php echo $i; ?>
<?php
}
于 2013-11-14T13:46:32.357 回答
0

这对我有用:

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>
于 2013-11-14T13:59:38.917 回答