加载数据表复选框,如果它已在数据库中,已经检查过

时间:2017-01-20 03:39:04

标签: javascript mysql codeigniter checkbox datatables

我正在做我的学校项目。我设法在数据库中添加/删除我的数据表复选框,如果值是检查然后它将添加然后如果取消选中然后它将被删除,现在我想要的是,当我用复选框加载数据表时,我想要检查已经存在于我的数据库中的值。例如,如果我的数据库中已经有user_id = 102,如果我加载数据表,我希望在获取数据表复选框时,将自动检查user_id值为102的名称。我该怎么做?我正在使用codeigniter框架。

这是我的控制器填充我的数据表:

public function getalldocs() {
        $listdocs = $this->Admin_model->getdoctors();
        $data = array();
        foreach ($listdocs as $docs) {
            $row = array();  
            $row[] = $docs->user_fname;
            $row[] = $docs->user_mname;
            $row[] = $docs->user_lname;
            $row[] = '<input name="user_id[]" value="'.$docs->user_id.'" type="checkbox">';

            $data[] = $row;
        }
        $output = array(   
            "data" => $data,
        );
        echo json_encode($output);
    }

这是我的ajax / javascript:

function show_docs() {
    $("#dataTables-docs").dataTable().fnDestroy();

    table =  $('#dataTables-docs').DataTable({ 
      "ajax": {
              "url": "<?php echo site_url('admin_controls/getalldocs')?>",
              "type": "POST",
          },
          responsive: true,
          className: 'select-checkbox',
          'bInfo': false,
          'paging': false
      });
}

然后我将该功能放入文档准备就绪:

$(document).ready(function() {
 $('#dataTables-docs').dataTable();
  show_docs();

});

我想要的是当我将加载我的数据表时,我想检查所有数据表复选框(如果它已经在数据库中)。

1 个答案:

答案 0 :(得分:0)

你只是比较数组。我不是PHP编码器,因此下面的内容可能是一个糟糕的方法,但它演示了将一个数组与另一个数组进行比较的原则。实际上,它将一个数组与一个交互值进行比较,但该迭代值可以很容易地从另一个数组中借用......

<?php

$my_array = array(
    0 => 1,
    1 => 2,
    2 => 3,
    3 => 5,
    4 => 7
);

for($i=0;$i<10;$i++){ 
echo $i;
if(in_array($i,$my_array)){echo " yes <br>\n";} else {echo " no <br>\n";}
}

?>