CodeIgniter表格编辑跳转对应ID页面及详情加载问题咨询
问题1:跳转链接失效修复
原因:你已经用?>结束了PHP代码块,a标签里的'.$row->id.'属于普通HTML文本,不会被PHP解析执行,实际生成的链接会是contacts/edit/'.$row->id.'而非带真实ID的地址。
修复后的视图(index.php)代码:
<?php foreach($records as $row ): ?> <tr> <td><?= $row->refno ?></td> <td><?= $row->display_name ?></td> <td> <!-- 用<?= 短标签输出ID,环境不支持短标签可替换为<?php echo $row->id; ?> --> <a href="contacts/edit/<?= $row->id ?>"> <span class="sr-only">edit</span> </a> </td> <td></td> </tr> <?php endforeach; ?>
问题2:编辑页展示指定ID联系人数据实现
分三步完成:
- 第一步:在模型类新增按ID查询联系人详情的方法
function get_record_by_id($id){ $this->db->select("*"); $this->db->from("contacts"); $this->db->where("status='Y'"); $this->db->where("id", $id); $query = $this->db->get(); // 查到返回单条对象,没查到返回空 return $query->row(); }
- 第二步:修改控制器的edit方法,接收ID参数、查询数据并传给视图
public function edit($id='') { // 校验ID合法性,为空或者非数字直接跳转回列表页 if(empty($id) || !is_numeric($id)){ redirect('contacts/lists'); } // 调用模型查询对应ID的联系人数据 $main['contact'] = $this->contacts_model->get_record_by_id($id); // 数据不存在也跳转回列表 if(empty($main['contact'])){ redirect('contacts/lists'); } $main['page'] = 'crm/contacts/edit'; $this->load->view('crm/index',$main); }
- 第三步:在contacts/edit视图文件里渲染数据
直接通过$contact变量读取字段即可,示例:
<!-- 示例输出字段,可根据实际需求扩展 --> <div> <p>编号:<?= $contact->refno ?></p> <p>显示名称:<?= $contact->display_name ?></p> <!-- 其他字段同理输出即可 --> </div>
内容的提问来源于stack exchange,提问作者JJM50
相关产品推荐
相关产品推荐

