我是Codeigniter中的新用户,我遇到了将个人ID转移到灯箱的问题。
首先,我想在视图页面中使用名称检索我的所有数据。然后我想通过单击名称链接显示带有灯箱的用户的详细信息,而无需刷新页面。我想要在页面数据渲染上。
这是我的控制器:
class Welcome extends CI_Controller {
public function index()
{
$this->load->model('model','',TRUE);
$this->load->view('header');
$data['query'] = $this->model->retrieve_data();
$this->load->view('home', $data);
$this->load->view('footer');
}
public function retrieve_one()
{
$data['data'] = $this->model->retrieve_row();
$this->load->view('result', $data);
}
我对我的模型感到困惑,想知道有没有办法从模型中检索灯箱中的数据?
这是我的模特:
class model extends CI_Model
{
public function __construct()
{
parent:: __construct();
$this->load->database();
}
public function retrieve_data()
{
$query = $this->db->get('cidata');
return $query->result();
}
public function retrieve_row()
{
$this->db->where('id', $this->uri->segment(2));
$data= $this->db->get('cidata');
return $data->result();
}
最后这是我的观点:
是否可以使用jquery获取数据?
<?php foreach($query as $row): ?>
<?php echo(anchor("#lights/$row->id", "$row->name<br><br>", "onclick=lighton()")); ?>
<div id="lights">
<?php echo($row->name); ?>
<p><a id="exit" onclick=lightoff(); href="javascript:void(0);">X</a></p></div>
<?php endforeach; ?>
注意:如果我将灯箱放入foreach,它的渲染只是第一个id,如果我把灯箱放在foreach的一侧,它只渲染我的最后一个id。
灯箱的JavaScript:
function lighton()
{
document.getElementById("lights").style.display="block";
}
function lightoff()
{
document.getElementById('lights').style.display='none';
}
所有代码都在我的视图页面上呈现我的用户列表。但是灯箱没有获得单独的id来呈现个人用户信息。
注意:这里如果我使用锚点:
<?php echo(anchor("welcome/retrieve_one/$row->id", "$row->name<br><br>", "onclick=lighton()")); ?>
它完美地呈现在结果页面中,但我不希望这样,因为它带有另一个带有id的页面。我希望在页面数据渲染与灯箱。怎么解决?请!
答案 0 :(得分:1)
将类添加到锚点并使用隐藏显示。见下面的例子
<?php foreach($query as $row): ?>
<?php echo(anchor("#lights/$row->id", "$row->name<br><br>", array('class'=>'lights_on'))); ?>
<div class="lights">
<?php echo($row->name); ?>
<p><a class="exit" href="javascript:void(0);">X</a></p>
</div>
$('.lights_on').click(function(){
$(this).next().show();
});
$('.exit').click(function(){
$(this).parent().hide();
})