【问题标题】:PHP to generate HTML radio buttonsPHP 生成 HTML 单选按钮
【发布时间】:2013-11-27 11:57:32
【问题描述】:

好的,我不确定如何解释我想要的(可能是为什么我不知道该怎么做),但基本上,我有以下 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 很陌生,所以请尽可能对新手友好! 提前致谢!

【问题讨论】:

    标签: php html forms function loops


    【解决方案1】:

    您的函数可能如下所示:

    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.

    【讨论】:

    • 这正是我需要的,你能告诉我你从哪里得到 $v 和 $o 吗?只是为了让我更好地理解代码
    • $v 是一个用于循环的计数器变量。 $o 是存储 HTML 的变量。
    【解决方案2】:

    很简单:

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

    【讨论】:

      【解决方案3】:

      $options- 没有你想要的选项

      $sel_val- 选择的投票值以显示它被选中

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

      【讨论】:

        猜你喜欢
        • 2016-04-25
        • 2011-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-13
        • 2013-07-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多