【问题标题】:How to prepare AJAX response as HTML code in PHP using template如何使用模板在 PHP 中将 AJAX 响应准备为 HTML 代码
【发布时间】:2017-01-27 14:13:50
【问题描述】:

在我的 PHP 项目中,我想使用 AJAX 技术。我熟悉简单的 AJAX 请求和简单的响应,其中只提供简单的回答,例如“1”(用户存在 od“2”(用户不存在))。在这些情况下,处理这种类型的例如,使用 jQuery 进行响应。

但在某些情况下,我想会有更复杂的响应,这会强制重新渲染页面的很大一部分。我有以下想法,怎么做:

  1. 使用 JSON 数据作为服务器端脚本的响应,并在客户端使用 jQuery 进行处理?

  2. 在服务器上渲染完整的 HTML 代码,将其作为对 AJAX 请求的响应发送到客户端,然后在 ajax 调用的“成功”部分简单地处理它?

在服务器上为复杂请求准备响应的最佳方法是什么?我想使用选项 2),但我想避免使用以下语法:

$result = '';
$result = '<div>';
$result = '  <p>Username ' . $username . ' is not unique';
$result = '</div>';

return $result;

是否有可能使用“模板”之类的东西来呈现 ajax 响应?我想使用纯 PHP,不需要额外的框架。

【问题讨论】:

  • 您可以使用file_get_contents()eval() 读取文件。或者,您可以为变量定义自己的占位符,并将其替换为 preg_replace()
  • 方法1是合理的,方法2也是。这真的取决于你的用例。我更喜欢以 JSON 之类的形式返回少量数据并更新页面客户端,因为这可能意味着 AJAX 请求比发送回可能已经在页面上的大量 HTML 请求更小、更快。是的,有一些模板方法可以比将它们链接在一起更容易生成 HTML。谷歌“PHP 模板”以发现更多......但这主要是一个“基于意见”的问题,IMO。
  • 谢谢,但是“替换”方法是不够的,因为我想在模板中处理一些数组等。我不知道如何使用替换来管理它。

标签: php ajax templates


【解决方案1】:

您可以为此使用HTML template tag。它允许您存储可以反复使用的 HTML。

在 JavaScript 中,通过模板的 ID 获取模板,复制它(确保进行深层复制),然后将所需的 JSON 值插入到新模板中。然后您可以将其插入到您的页面中。

或者,使用客户端库,例如 handlebars.js

不要通过 PHP 发送 HTML。这完全是错误的。

【讨论】:

  • 根据这个答案,我尝试在我的项目中实现它。服务器端脚本返回 JSON 数据,在客户端我使用 jQuery 处理它们并将结果附加到模板中。我认为,就我而言,这是最好的方法。唯一的问题是,在 jQuery 中使用
猜你喜欢
  • 2022-08-14
  • 2017-02-17
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 2015-12-23
  • 2012-02-08
  • 1970-01-01
  • 2017-01-17
相关资源
最近更新 更多