如何传递数据库数据以在 Codeigniter 中查看输入

How to pass database data to view input in Codeigniter

我正在尝试为带有输入复选框的复选框制作编辑按钮

截图:http://gyazo.com/381e44b71e7b62d257bff0a0361b5d61

我已经完成了插入函数及其工作。

在table我有像

这样的数据库
 id  property_id  property_type_id     alt_txt  
------  -----------  ----------------  ------------
     1            1                 1        25
     2            2                 1        30
     4            7                 1        50
    49            6                 1        60

property_type_id 与复选框相关,alt_txt 与输入相关

单击编辑时如何将此数据传递给他们

我试着让模型功能像

function get_by_id($id){
            $this->db->where('id', $id);
            return $this->db->get($this->_table_name);
    }

在控制器中我这样称呼它

 $this->data['type'] = $this->type_m->get_by_id($id);

并且在 var_dump 我收到

object(CI_DB_mysql_result)#232 (8) {
  ["conn_id"]=>
  resource(45) of type (mysql link)
  ["result_id"]=>
  resource(87) of type (mysql result)
  ["result_array"]=>
  array(0) {
  }
  ["result_object"]=>
  array(0) {
  }
  ["custom_result_object"]=>
  array(0) {
  }
  ["current_row"]=>
  int(0)
  ["num_rows"]=>
  int(0)
  ["row_data"]=>
  NULL
}

请帮我实现这个编辑功能

编辑:

这是我的视图代码的一部分:

    <fieldset>
                    <!--        Form Name -->                
                    <legend>Choose property type</legend>

<!--                 Multiple Checkboxes (inline) -->
                <div class="form-group">
                  <div class="col-md-4">
                    <label class="checkbox-inline" for="checkboxes-0">
                    <?php echo form_checkbox('data[1][property_type_id]', '22', set_value('data[1][property_type_id]', $type->property_type_id), 'id="checkboxes-0"')?>
                      PentHause
                    </label>
                      <br>
<!--                 Text input-->
                <div class="form-group">
                  <div class="col-md-8">
                <?php  echo form_input('data[1][alt_txt]', set_value('data[1][alt_txt]',$type->alt_txt), 'class="form-control" id="cena" placeholder="Enter Price"')?>

                  </div>
                </div>

                    <label class="checkbox-inline" for="checkboxes-1">
                <?php echo form_checkbox('data[2][property_type_id]', '21', set_value('data[2][property_type_id]', $type->property_type_id), 'id="checkboxes-1"')?>
                      Garage
                    </label>
                <br>
<!--                                         Text input-->
                <div class="form-group">
                  <div class="col-md-8">
                <?php echo form_input('data[2][alt_txt]', set_value('data[2][alt_txt]', $type->alt_txt), 'class="form-control" id="cena" placeholder="Enter Price"')?>
                  </div>
                </div>

如果您只想让 1 行在模型中使用 get_where() 方法,可能会更容易:

$item = $this->db->get_where($this->_table_name,array("id"=>$id),1,0);

return ($item->num_rows() == 1) ? $item->row() : false;

这样您就可以使用 get_where() 的限制和偏移参数选择 1 行,检查结果是否只有一行并返回该行对象,否则为 false 将导致调用失败。

我已经成功了,分享给有同样情况的人:

模型函数:

    public function get_by_id($id){
        $item = $this->db->get_where($this->_table_name,array("property_id"=>$id));
        return $item->result_array();
}

在控制器中我这样调用

            $type_array = $this->type_m->get_by_id($id);

  foreach($type_array as $estate_obj){
        $type = array();
        $type['id'] = $estate_obj['id'];
        $type['property_id'] = $estate_obj['property_id'];
        $type['property_type_id'] = $estate_obj['property_type_id'];
        $type['alt_txt'] = $estate_obj['alt_txt']; 
        //var_dump($type);
        $this->data['type'][$type['property_type_id']] = $type;
  }

这就是我在视图中实现的方式:

       <fieldset>
                    <!--        Form Name -->                
                    <legend>Изберете типове за имота</legend>

<!--                 Multiple Checkboxes (inline) -->
                <div class="form-group">
                  <div class="col-md-4">
                    <label class="checkbox-inline" for="checkboxes-0">
                    <?php echo form_checkbox('data[1][property_type_id]', '22', set_value('data[1][property_type_id]',$type[22]['property_type_id']), 'id="checkboxes-0"')?>
                      Пентхаус
                    </label>
                      <br>
            <!--    Text input-->
                <div class="form-group">
                  <div class="col-md-8">
                    <?php echo form_input('data[1][alt_txt]', set_value('data[1][alt_txt]', isset($type[22]['alt_txt'])?$type[22]['alt_txt']:''), 'class="form-control" id="cena" placeholder="Въведи цена"')?>
                  </div>
                </div>

                    <label class="checkbox-inline" for="checkboxes-1">
                <?php echo form_checkbox('data[2][property_type_id]', '21', set_value('data[2][property_type_id]', $type[21]['property_type_id']), 'id="checkboxes-1"')?>
                      Гараж/Паркомясто
                    </label>
                <br>
            <!-- Text input-->
                <div class="form-group">
                  <div class="col-md-8">
                    <?php echo form_input('data[2][alt_txt]', set_value('data[1][alt_txt]', isset($type[21]['alt_txt'])?$type[21]['alt_txt']:''), 'class="form-control" id="cena" placeholder="Въведи цена"')?>
                  </div>
                </div>
                    <label class="checkbox-inline" for="checkboxes-2">
                    <?php echo form_checkbox('data[3][property_type_id]', '20', set_value('data[3][property_type_id]',$type[20]['property_type_id']), 'id="checkboxes-2"')?>
                     Бизнес
                    </label>
                    <br>
                         <!--Text input-->
                <div class="form-group">
                  <div class="col-md-8">
                    <?php echo form_input('data[3][alt_txt]', set_value('data[3][alt_txt]', isset($type[20]['alt_txt'])?$type[20]['alt_txt']:''), 'class="form-control" id="cena" placeholder="Въведи цена"')?>

                 </div>
                </div>

问题解决了!谢谢