【问题标题】:Looping HTML radio using PHP array使用 PHP 数组循环 HTML 收音机
【发布时间】:2013-11-27 13:19:18
【问题描述】:

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

感谢您的帮助!

【问题讨论】:

    标签: php html forms function loops


    【解决方案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'];
    

    【讨论】:

      【解决方案2】:

      试试这个来传递一个循环

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

      【讨论】:

        【解决方案3】:

        这对我有用:

        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>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-01-26
          • 2011-08-04
          • 2014-11-19
          • 2011-06-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多