【发布时间】:2020-06-05 22:24:37
【问题描述】:
我在将数据从控制器传递到视图时遇到问题。我有一个内容可编辑的 div,我将其内容保存到我的数据库中;然后我想在视图中显示它。
我的控制器
{
function __construct(){
parent::__construct();
$this->load->database();
$this->load->model('view_data');
$data = array();
}
public function index(){
$data['contactMe'] = $this->input->post('data');
$this->db->update('content', $data);
$results = $this->view_data->loadData();
$data['contactMeData'] = $results;
$this->load->view('pages/home', $data);
}
}
我的模型
<?php
class View_data extends CI_Model{
function __construct(){
parent::__construct();
}
public function loadData(){
$this->db->where('contactMe');
$query = $this->db->get('content');
return $query->result_array();
}
}
我的看法
<div class="w-100" ondblclick="makeEditable(this)" onblur="makeReadOnly(this)" contenteditable="true" id="contactMe">
<?php
foreach($contactMeData as $contact){
echo $contact;
}
?>
</div>
<button id="editBtn" type="submit" value="">Save changes
</button>
每次我重新加载页面时,它都会替换数据库中已有的数据,我只会得到一个空白 div。我无法查看数据库中的数据。
【问题讨论】:
-
如果您不直接路由到控制器(即“/edit/”),那么您如何加载此视图?是否有另一个控制器加载此视图,或者您是否设置了自定义路由?
-
我有一个基本的“页面”控制器来加载视图。我的 jqeuery 调用我的编辑控制器,用 div 的内容更新数据库。直接路由到它的问题是,每次我重新加载页面时,它都会用空白数据更新数据库。
-
啊,所以在这种情况下,视图永远不会加载您在
Edit控制器中设置的数据。您必须直接通过Edit控制器路由才能将您的contactMeData传递给视图。如果您的数据库中的数据被仅加载该视图所取代,那么其他地方可能存在另一个问题。 -
当我路由到编辑控制器时,我只得到一个空白 div。我仍然可以保存更改,但是一旦我重新加载页面,这些更改就会立即在数据库中被替换。
标签: php codeigniter