7

我想我可能会以错误的方式处理这个问题,所以我将不胜感激任何评论/指导。希望我能足够连贯地解释我想要实现的目标:

  • 我想创建一个 HTML 块(例如,一个包含用户配置文件的框),我将在我生成的大多数页面上加载它作为我的布局的一部分。

  • 我还希望能够从单独的 URL 自行重新生成此框中的内容。这样我就可以使用 AJAX 调用更新该框。

  • 我不想复制创建此 HTML 的代码。

我很感激我可以使用 AJAX 调用来加载这个盒子,但在我看来这似乎是向服务器添加了不必要的调用?

我认为我可以做到的方法是在我的控制器中有一个方法,它只呈现这个 HTML 块,但是我如何在另一个控制器/视图中请求这个方法的输出?

你会如何处理这个问题?

提前致谢

4

2 回答 2

8

创建一个视图以生成用户配置文件的 HTML 块,并使用以下命令从控制器调用它:

$user_html = $this->load->view('user_view', $user_data, true);

第三个参数将视图作为字符串返回,而不是显示它。然后可以以通常的方式将其传递到另一个视图。

$data['user_block'] = $user_html;
$this->load->view('page_view', $data);
于 2008-11-28T12:45:36.297 回答
-1

就数据而言,您不需要使用 PHP 生成 HTML。您可以使用jQuery从页面源中的 JSON 对象输出生成必要的元素。然后,您可以在元素上显示一个漂亮的小“加载”动画,同时它会达到“domready”状态。

就重新填充 div 而言,请执行以下操作:

为您的个人资料制作一个 div 并给它一个 id。将数据的每个“元素”放入它自己的 p 元素中,并将实际数据包装在 span 元素中。例如 <p>Name: <span>Joe Bloggs</span></p> 然后简单地使用jQuery遍历 dom 并用数据重新填充 span。只要确保以正确的“顺序”输出数据。

有任何问题,请随时反馈。

于 2008-11-28T22:01:33.443 回答