【问题标题】:Getting $_POST from checkboxes which are in loop从循环中的复选框中获取 $_POST
【发布时间】:2013-10-22 23:10:03
【问题描述】:

我正在尝试在提交表单后检查复选框的值(类似于验证),无论如何独立于选定的输入,我的代码无法确定用户选择了哪个输入。

例如: 选项1 选项 2 选项 3

如果用户选择了选项 2,3,则代码选择选项 1,2。 如果用户选择了选项 2,则代码选择选项 1。 只有当用户选择选项 1 或选项 1、选项 2 或所有选项时,代码才能正常工作。

for ($y=0;$y<$n; $y++) {
    $caption_and_value = explode(":",$before_explode[$y]); 
    $caption = caption_and_value[0];
    $value = caption_and_value[1];
    $match .= '<input type="checkbox" name="'.$name_form[$y].'" value="'.$value.'"'; 
    if (isset($_POST[$name_form][$y])) {
        $match .= ' checked="checked"';
    } else {
        $match .= ''; 
    } 
    $match.='>'.$caption.'<br />';  
}

如果我做错了什么,请告诉我,我无法从几个小时内弄清楚这一点。 谢谢!

【问题讨论】:

    标签: php html arrays loops checkbox


    【解决方案1】:

    你应该使用一个复选框数组,这样更容易处理:

    <input type="checkbox" name="boxes[]">
    <input type="checkbox" name="boxes[]">
    <input type="checkbox" name="boxes[]">
    

    ...然后在 PHP 中:

    foreach($_POST['boxes'] as $key => $value) {
        echo $key . ': ' . $value;
    }
    

    【讨论】:

      【解决方案2】:

      我有这个。这是表格:

      <form method='POST' action = 'process.php'>
      <?php 
      for ($i=1;$i<=3;$i++){
      echo "<input type='checkbox' name='box[]' value='$i'>$i<br>";
      }
      ?>
      <input type='submit' value='send'>
      </form>
      

      它是 php :

          <?php 
          $input_value = $_POST['box'];
          $i = 0;
          $choice1 = NULL;
          $choice2 = NULL;
          $choice3 = NULL;
          foreach ($input_value as $value){
          if ($value == "1"){
          $choice1 = "active";
          }
          if ($value == "2"){
          $choice2 = "active";
          }
          if ($value == "3"){
          $choice3 = "active";
          }
          }
      //choice checker script block
          if (!isset($choice1) and !isset($choice2) and !isset($choice3)){
          echo "You didn't choose anything!";
          }
          if ($choice1 == "active" and $choice2 == NULL and $choice3 == NULL){
          echo "You only chose 1";
          }
          if ($choice2 == "active" and $choice1 == NULL and $choice3 == NULL){
          echo "You only chose 2";
          }
          if ($choice3 == "active" and $choice2 == NULL and $choice1 == NULL){
          echo "You only chose 3";
          }
          if ($choice1 == "active" and $choice2 == "active" and $choice3 == NULL){
          echo "You chose 1 and 2";
          }
          if ($choice1 == "active" and $choice3 == "active" and $choice2 == NULL){
          echo "You chose 1 and 3";
          }
          if ($choice3 == "active" and $choice2 == "active" and $choice1 == NULL){
          echo "You chose 2 and 3";
          }
          if ($choice1 == "active" and $choice2 == "active" and $choice3 == "active"){
          echo "You chose all of the choice!";
          }
      // end of choice checker script blok
          ?>
      

      可能有点混乱和大量的代码。 :D
      但是,如果您想检查用户选择的选项,我已经在上面创建了“选择检查脚本”。
      实际上,您可以将if($choice == 'active') 更改或替换为if(isset($choice)),但它会返回相同的结果。 尝试一下!你会知道如何自定义它..
      我认为这就是你要找的。

      【讨论】:

        猜你喜欢
        • 2011-06-27
        • 2021-07-26
        • 2020-04-12
        • 2019-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多