mSites and Smarty

目前的页面实现方式是需要向后台请求接口,返回 JSON 数据,动态拼接字符串塞进 DOM 中(innerHTML)。考虑用 Smarty 生成静态页面,可以在后台用 PHP 得到数据,字符串拼接,然后将变量赋值给 .tpl 模板文件,从而生成静态页面。

比如这样:

复制代码<?php
  header("Content-type: text/html; charset=utf-8"); 

  $url = '..';  // a url return json
  $content = file_get_contents($url);
  $data = json_decode($content);
  var_dump($data);
?>

$data 即为后台 JSON 对象,接下去可以提取需要的部分生成 HTML 字符串,赋值(assign)给 .tpl 文件中的相关变量。

鉴于对 PHP 的不熟悉,可以绕个弯路,用 JS 完成大部分工作。

  1. js 请求接口数据(ajax),动态生成需要的字符串
  2. 将生成的字符串以对象形式 POST 给 Smarty 的启动 php
  3. php 中通过 $_POST[] 得到这个数据(JSON 对象),然后 assign 给 模板文件。
原文地址:https://www.cnblogs.com/zhangyuhang3/p/6873304.html