Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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 需要帮助创建可编辑复选框吗_Php_Mysql_Codeigniter - Fatal编程技术网

Php 需要帮助创建可编辑复选框吗

Php 需要帮助创建可编辑复选框吗,php,mysql,codeigniter,Php,Mysql,Codeigniter,我试图创建一个编辑页面,其中包含一些复选框,其值从数据库循环。我尝试了不同的代码组合,但是我似乎在使其正常工作方面遇到了问题,尤其是复选框(复选框是我唯一遇到问题的) 我的代码所发生的是 例如,如果选中了所有复选框,并且我未选中第二个复选框和第三个复选框 ✓ Dj Lorem ■ Dj Ipsum ■ Dj Dolor ✓ Dj Sit ✓ Dj Amet 提交后,它将像这样 ✓ Dj Lorem ✓ Dj Ipsum ✓ Dj Dolor

我试图创建一个编辑页面,其中包含一些复选框,其值从数据库循环。我尝试了不同的代码组合,但是我似乎在使其正常工作方面遇到了问题,尤其是复选框(复选框是我唯一遇到问题的)

我的代码所发生的是

例如,如果选中了所有复选框,并且我未选中第二个复选框和第三个复选框

 ✓ Dj Lorem        ■ Dj Ipsum
 ■ Dj Dolor        ✓ Dj Sit
 ✓ Dj Amet
提交后,它将像这样

 ✓ Dj Lorem        ✓ Dj Ipsum
 ✓ Dj Dolor        ■ Dj Sit
 ■ Dj Amet
 Edit News

 News Title: ___Party at 6____ 
 Choose a DJ
 ■ Dj Lorem        ■ Dj Ipsum
 ■ Dj Dolor        ■ Dj Sit
 ■ Dj Amet
选中的内容向上/最后一个复选框始终是未选中的,依此类推(如果取消选中2个复选框,则最后2个复选框是未选中的)

编辑_news.php(视图)

cms.php(控制器)

cms\u model.php(model)

新闻(sql)

花名册(sql)

新闻节目主持人(sql)

我没有主意了,似乎无法解决它


谢谢你把它设置得很奇怪
cats[]
将只包含已检查的元素,因此检查
$cats[$i]!=“
意味着它将计算检查的DJ数量,并在循环中分配所列DJ的第一个
x
数量。在设置HTML时,我建议

name="cats[<?php echo $d->UID; ?>]" value=...
致:


这将看到当前DJ是否在提交的复选框值列表中。

+1使用示例等进行了非常好的解释。感谢您的回答,最终使其工作正常。您是一个救生员=d您使用
$q=$cdj->row($i)匹配ID的方式确实不推荐。无法保证行
$i
与循环中的ID相同。您的模型应该以正确的格式清理数据。这将使你的循环更容易和正确匹配。@Cryode谢谢你重复我的话。。。。如果不是复选框,那么如果使用我输入的第一个方法,它将具有相同的ID,但与问题的代码不同。第二种方法可以正确地检查每个DJ id。我没有重复你的回答,我详细阐述了你的答案,以解释其他一些做得不好的地方。您没有提到不正确地使用了
行()
,而且由于您的建议导致OP解决了他的问题,我只是添加了一条评论。@Cryode好的,我现在明白了,我以为我在第一部分已经讲过了,但OP不会在这里看到您的评论,因为我怀疑他是否会回来,而您没有
@
他,所以我认为最好是让他注意他的问题,从哪里得到通知^^
public function news_edit($id)
{
    $data['dj'] = $this->cms_model->get_dj();
    $data['news1'] = $this->cms_model->get_one_news($id);
    $data['djnews'] = $this->cms_model->get_djnews($id);
    $data['cdj'] = $this->cms_model->get_cdj($id);
    $data['id'] = $id;
    $this->load->vars($data);
    $this->load->view('admin/news_edit');
}

public function update_news($id)
{
    $this->cms_model->update_news($id);
    redirect(base_url() . "cms/news_edit/".$id);
}
function get_dj(){
    return $this->db->select()->from("roster")->get();
}

function get_one_news($id){
    return $this->db->select()->from("news")->where("UID",$id)->get()->row();
}

function get_cdj($id){
        return $this->db->select()->from("news_dj")->where("news_id",$id)->get();   
}

function update_news($id)
{       
    $news_title = $this->input->post("news_title");

    $cats = $this->input->post("cats");
    $dj_id = $this->input->post("dj_id");

    $newdata = array('news_title'=>$news_title
                    );

    $this->db->where('UID', $id);
    $this->db->update('news', $newdata);

    $i=0;
    foreach($dj_id as $d)
    {
        if ($cats[$i] == ""){$check="no";}
        else{$check="yes";}
        $dj = array('dj_id'=>$d,'news_id'=>$id,'checked'=>$check);
        $this->db->where('dj_id', $d);
        $this->db->where('news_id', $id);
        $this->db->update('news_dj', $dj); 
        $i=$i+1;
    }
}       
 UID       news_title
  6        Party at 6
  7        Event Cancelled on Monday
  8        and so on
 UID       news_title
  1        Lorem
  2        Ipsum
  3        Dolor
  4        Sit
  5        Amet
 dj_id     news_id    checked
  1        6          yes
  2        6          yes
  3        6          yes
  4        6          no
  5        6          no
name="cats[<?php echo $d->UID; ?>]" value=...
if ($cats[$i] == ""){$check="no";}
        else{$check="yes";}
$check = (in_array($d, $cats)) ? "yes" : "no";