在codeigniter中,我已经从控制器传递了一个数组来查看
控制器代码:
$data['x'] = $this->home_model->get_latest_five_rows();
$this->load->view('templates/header', $data);
$this->load->view('app/'.$page, $data);
$this->load->view('templates/footer', $data);
查看代码:
<? foreach ($x as $listing): ?>
Posted by <a href="/users/profile/<? echo $listing['by_user_id']; ?>"><? echo $listing['by_user_id']; ?></a>
我想从&#34; $ listing [&#39; by_user_id&#39;]&#34;中获取用户名。我如何实现这一目标?
基于评论相应地修改了它但没有成功
视野中的代码
<script type="text/javascript">
$.ajax({
type: "POST",
url: "users/user_name",
data: {send: <? echo $job_listing['by_user_id']; ?>},
success: function(value) {
}
});
</script>
控制器:
public function user_name($id) {
$data['user_name'] = $this->user_model->get_user_name($this->post('id'));
$this->load->view('app/', $data);
}
型号代码:
public function get_user_name($id) {
$query ="select user_full_name from app_users where id = ".$id;
$res = $this->db->query($query);
return $res->result_array();
}
我哪里错了?提前谢谢。
答案 0 :(得分:0)
你真的不应该从视图中将数据传递给控制器(好吧,除非它是一个匹配路由模式的用户操作,但这是解释MVC for web的另一个问题)。
如果视图从控制器接收到数据,那么根据定义,您正在寻找的值应该在某个时间存在于控制器中。
控制器中的 $data['x']
等于
$x
在您的视图中。
也就是说,如果您在视图中执行此操作:
foreach ($x as $listing)
{
$user_id = $listing['by_user_id'];
}
...然后,在变量结构的上下文中,它在您的控制器中等效于此:
foreach ($data['x'] as $listing)
{
$user_id = $listing['by_user_id'];
}