Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 复选框权限[access]验证不工作Codeigniter_Php_Codeigniter - Fatal编程技术网

Php 复选框权限[access]验证不工作Codeigniter

Php 复选框权限[access]验证不工作Codeigniter,php,codeigniter,Php,Codeigniter,我正在设置一些复选框,复选框上的名称是name=“permission[access][]” 我无法使用codeigniter验证,因为它不会显示验证错误消息 如何使其与名称一起工作name=“permission[access][]” 控制器: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Post_test extends MX_Controller { public

我正在设置一些复选框,复选框上的名称是
name=“permission[access][]”

我无法使用codeigniter验证,因为它不会显示验证错误消息

如何使其与名称一起工作
name=“permission[access][]”

控制器:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Post_test extends MX_Controller {

public function index() {

    $data['action'] = site_url('post_test');

    $ignore = array(
        'common/dashboard',
        'common/footer',
        'common/header'
    );

    $data['permissions'] = array();

    $files = glob(APPPATH . 'controllers/*/*.php');

    foreach ($files as $file) {
        $part = explode('/', dirname($file));

        $permission = end($part) . '/' . basename($file, '.php');

        if (!in_array($permission, $ignore)) {
            $data['permissions'][] = $permission;
        }
    }

    if ($this->input->post('permission[access]') !== FALSE) {
        $data['access'] = $this->input->post('permission[access]');
    } else {
        $data['access'] = array();
    }

    $this->load->library('form_validation');

    $this->form_validation->set_rules('permission[access]', 'Permission Access', 'required');

    if ($this->form_validation->run() == false) {

    $this->load->view('post_test.tpl', $data);

    } else {

        var_dump($_POST);

    }
}

}

如果您
var\u dump($\u POST);模具()在函数开始时,是否看到所需内容?不理解问题所有内容如果不选中任何复选框,则验证错误不会显示。如果我选中了复选框,那么它将变为vardump
array(1){[“permission”]=>array(1){[“access”]=>array(3){[0]=>string(16)“common/post_test”[1]=>string(13)“common/step_3”[2]=>string(13)“common/step_4”}
我确实理解错了。然后,可能是因为您忘记在视图中设置
,如果您查看视图顶部,您将看到
是的,我看到了。这只是为表单错误消息设置分隔符,而不是错误本身。编辑:是的,在阅读CI文档之后,您是对的。它也应该这样工作。
<?php echo validation_errors('<div class="alert alert-danger">', '</div>'); ?>
<form action="<?php echo $action;?>" method="post" enctype="multipart/form-data" class="form-horizontal">
<fieldset>
<div class="form-group">
<label class="col-sm-2 control-label"></label>
<div class="col-sm-10">
<div class="well well-sm" style="height: 150px; overflow: auto;">
<?php foreach ($permissions as $permission) { ?>
<div class="checkbox">
<label>
<?php if (in_array($permission, $access)) { ?>
<input type="checkbox" name="permission[access][]" value="<?php echo $permission; ?>" checked="checked" />
<?php echo $permission; ?>
<?php } else { ?>
<input type="checkbox" name="permission[access][]" value="<?php echo $permission; ?>" />
<?php echo $permission; ?>
<?php } ?>
</label>
</div>
<?php } ?>
</div>
</div>
</fieldset>
<div class="buttons clearfix">
<div class="pull-left"></div>
<div class="pull-right">
<br/>
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>