我想我可能会以错误的方式接近这一点,所以我将不胜感激任何评论/指导。希望我能够连贯地解释我想要实现的目标:
我想创建一个HTML块 (例如,包含用户的框 profile),我将作为其中一部分加载 我在大多数页面上的布局 产生
我也希望能够 重新生成此内容 框中有一个单独的URL。这样我就可以通过AJAX调用来更新该框。
我不想复制代码 这会创建这个HTML。
我很欣赏我可以使用AJAX调用初始加载此框,但在我看来,这会给服务器添加不必要的调用吗?
我认为我可以这样做的方法是在我的控制器中使用一个方法来渲染这个HTML块,但是如何在另一个控制器/视图中请求此方法的输出?
你会怎么做?
提前致谢
答案 0 :(得分:7)
创建一个视图,为用户的个人资料生成HTML块,并使用以下命令从控制器中调用:
$user_html = $this->load->view('user_view', $user_data, true);
第三个参数将视图作为字符串返回,而不是显示它。然后可以通常的方式将其传递到另一个视图中。
$data['user_block'] = $user_html;
$this->load->view('page_view', $data);
答案 1 :(得分:-1)
就数据而言,您不需要使用PHP生成HTML。您可以使用jQuery从页面源中的JSON对象输出生成必要的元素。然后,您可以在元素上显示一个漂亮的小“加载”动画,同时它可以达到“domready”的状态。
就重新填充div而言,请执行以下操作:
为您的个人资料制作一个div并为其指定一个ID。 将每个“元素”数据放入其自己的p元素中,并将实际数据包装在span元素中。 例如 < p>名称:< span> Joe Bloggs< / span>< / p> 然后只需使用jQuery遍历dom并使用数据重新填充跨度。只需确保以正确的“顺序”输出数据。
如有任何问题,请随时提供反馈。