首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP必需复选框字段

PHP必需复选框字段
EN

Stack Overflow用户
提问于 2016-02-19 06:23:58
回答 5查看 4.4K关注 0票数 1

我有一个带有多个复选框的表单。我希望允许用户在每个复选框字段中至少选择1,如果用户不选中复选框中的任何选项,将显示“您必须至少选择一个”的消息。我该怎么做呢?我这里有一些密码:

代码语言:javascript
复制
<div>
    <div><span class="font-2">Categories:</span></div>
</div>

<div class = "addinfo">
    <?php $categories = array('Breakfast', 'Lunch', 'Dinner', 'Snack', 'Grill', 'Buffet', 'Fast Food');
          $values = explode(',' , $row['categories']);
    ?>

    <?php foreach($categories as $category) {
        $cat='';
        foreach($values as $value){
        if($value == $category){
        $cat ="checked";    
    }

    ?>
    <input <?php echo $cat ?> type="checkbox" name="category[]" value="<?php echo $category?>"><?php echo $category?><br>
    <?php } 
    }?>
</div>  

表格

代码语言:javascript
复制
<form method = "POST" action = "<?php echo base_url().'/index.php/AdminController/operation'?>">

AdminController

代码语言:javascript
复制
public function addResto(){
    $this->load->model('AdminModel');
    $this->AdminModel->insert();
    $this->getRestos();
}
public function operation(){

    if(isset($_POST['btn'])){
        if(empty($_POST['id'])){
            $this->addResto();
        }
        else{
            $this->updatingResto();
        }   
    }
}
public function updateResto($id){
    $this->load->model('AdminModel');
    $restaurantinfo['restaurantinfo']=$this->AdminModel->getResto($id);
    $this->load->view('admin/UpdateRestoPage',$restaurantinfo);
}

public function updatePage(){
    $this->load->view('admin/UpdateRestoPage');
}

public function updatingResto(){
    $id = $_POST['id'];
    $this->load->model('AdminModel');
    $this->AdminModel->update($id);

}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-02-19 07:21:35

您还应该检查是否有被选中的checkbox

代码语言:javascript
复制
public function operation(){
    if(isset($_POST['btn'])){
        if(empty($_POST['category'])){
            $this->load->view('YOUR_VIEW_FILE',array('error'=>'category'));
        }else if(empty($_POST['id'])){
            $this->addResto();
        }
        else{
            $this->updatingResto();
        }   
    }
}

您的view文件添加一个条件

代码语言:javascript
复制
<?php 
    if(!empty($error) && $error=="category"){
?>
    <script>alert("You have to select at least one.");</script>
<?php 
    } 
?>
票数 0
EN

Stack Overflow用户

发布于 2016-02-19 06:45:04

在被调用的php中添加验证

代码语言:javascript
复制
<?php
    $checked = false;
    foreach($_POST["category"] as $key) {
        if(!empty($key)) {
            $checked = true;
        }
    }

    if(!$checked) {
        echo "<script>";
        echo "alert('You have to select at least one.');";
        echo "history.back();";
        echo "</script>";
        exit();
    }
?>
票数 0
EN

Stack Overflow用户

发布于 2016-02-19 07:05:18

在控制器操作功能中使用

代码语言:javascript
复制
if (isset($_POST['mycheckbox'])) {
   echo "checked!";
} esle {
   //send again with error message
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35498643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档