【问题标题】:Checkbox input array not recognized by PHPPHP 无法识别复选框输入数组
【发布时间】:2018-04-13 06:17:48
【问题描述】:

我有一个带有这些复选框的表单:

<input type='checkbox' name='yourgame[]' value='soccer' /> Soccer<br>
<input type='checkbox' name='yourgame[]' value='tennis' /> Tennis<br>
<input type='checkbox' name='yourgame[]' value='basketball' /> Basketball<br>

在 php 脚本中,我们获取值:

$yourgame = $_POST['yourgame'];

还有验证:

if (empty($yourgame))
echo "Tick at least one Game.";

我们不断收到错误消息“勾选至少一场游戏”。尽管勾选了几个框。 $yourgame[] 数组似乎无法识别。

我也试过$yourgame = (array)$_POST['yourgame'];没有成功。

【问题讨论】:

  • 能否请您发布您的&lt;form&gt; 标签?
  • 未选中的复选框没有在服务器端发布,所以需要添加条件如果为空则没有复选框不被选中
  • 表单标签是
  • 当验证被移除时,我们得到警告:implode() [function.implode]: invalid arguments passed in C:\xampp\htdocs\....

标签: php html arrays forms


【解决方案1】:

试试这个

if (isset($_POST['submit'])) {
    $checkedCandidates = 0;
    $values = $_POST['yourgame'];
    $checkedCandidates = count($values);

    if ($checkedCandidates < 1) {
        echo 'Tick at least one Game.';
    } else {
        echo 'Checked';
    }
}

【讨论】:

    【解决方案2】:

    试试这个。

    <form method="post">
    <input type='checkbox' name='yourgame[]' value='soccer' /> Soccer<br>
    <input type='checkbox' name='yourgame[]' value='tennis' /> Tennis<br> 
    <input type='checkbox' name='yourgame[]' value='basketball' /> 
     Basketball<br>
    <input type="submit" name="btnsave" value="Submit" />
    </form>
    <?php
    if(isset($_POST['btnsave'])){
    
    $chk=isset($_POST['yourgame'])?$_POST['yourgame']:"";
    if(!empty($chk)){
    
        print_r($chk);
    
    }
    else{
    
        echo 'Ops! select at least one value';
      }
    
      }
       ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多