【问题标题】:PHP checkboxes and $_GET array variablesPHP 复选框和 $_GET 数组变量
【发布时间】:2015-10-12 02:17:47
【问题描述】:

我遇到了一个很糟糕的问题,并且已经浪费了 2 天时间。我正在尝试使用复选框和 $_GET 方法过滤结果集,但由于某种原因,nbot 正在工作。复选框名称的 $_GET 变量始终是一个字符串而不是数组。

我有:

<form action="" method="get">

GET<br />
<input type="checkbox" name="formDoor1[]" value="A" />Acorn Building<br />
<input type="checkbox" name="formDoor1[]" value="B" />Brown Hall<br />
<input type="checkbox" name="formDoor1[]" value="C" />Carnegie Complex<br />
<input type="checkbox" name="formDoor1[]" value="D" />Drake Commons<br />
<input type="checkbox" name="formDoor1[]" value="E" />Elliot House

<input type="submit" name="formSubmit" value="Submit" />

</form>

提交后,我在 $_GET 中有这个:

Array ( [page] => xxxx[stype] => xx [entrant] => xxx [formDoor1[]] => C [formSubmit] => Submit ) 

在我检查了前 3 个复选框之后( $_GET 只有一个值 - 最后一个被检查并且不是数组。

注意:与 $_POST 表单相同的表单工作正常。

感谢任何帮助,因为我对此感到很疯狂。

谢谢

【问题讨论】:

    标签: php forms get


    【解决方案1】:

    试试这个:

    <form action="" method="get">
    
    GET<br />
    <input type="checkbox" name="formDoor1[A]"/>Acorn Building<br />
    <input type="checkbox" name="formDoor1[B]"/>Brown Hall<br />
    <input type="checkbox" name="formDoor1[C]"/>Carnegie Complex<br />
    <input type="checkbox" name="formDoor1[D]"/>Drake Commons<br />
    <input type="checkbox" name="formDoor1[E]"/>Elliot House
    
    <input type="submit" name="formSubmit" value="Submit" />
    
    </form>
    

    【讨论】:

      【解决方案2】:

      试试这个

       <form action="" method="get">
      
       GET<br />
      <input type="checkbox" name="formDoor1[]" value="A" />Acorn Building<br />
      <input type="checkbox" name="formDoor1[]" value="B" />Brown Hall<br />
      <input type="checkbox" name="formDoor1[]" value="C" />Carnegie Complex<br />
      <input type="checkbox" name="formDoor1[]" value="D" />Drake Commons<br />
      <input type="checkbox" name="formDoor1[]" value="E" />Elliot House
      
      <input type="submit" name="formSubmit" value="Submit" />
      
      </form>
      <?php
      if(isset($_POST['formSubmit'])){
      if(!empty($_POST['formDoor1'])) {
      
      //Loop through  array to fetch individual value so that we can use them
        echo "<h2> You have selected: </h2>";
        foreach($_POST['formDoor1'] as $formDoor1) {
        echo "<p>".$formDoor1 ."</p>"; //Print all the values
      
         }
       }
      }
      

      【讨论】:

        【解决方案3】:

        您可以像 POST 一样轻松访问 GET 方法中的复选框值。

        试试这个:

        $formDoor1 = isset($_GET['formDoor1']) && is_array($_GET['formDoor1']) ? $_GET['formDoor1'] : false;
        
        echo '<pre>';
        print_r($formDoor1);
        

        【讨论】:

          猜你喜欢
          • 2013-05-15
          • 2012-10-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-23
          • 2019-11-30
          • 1970-01-01
          • 2012-03-30
          相关资源
          最近更新 更多