什么';这是通过ajax echo命令包含html的最佳方式


What's the best way to include html through an ajax echo command?

我目前正在构建一个小型网站,通过Ajax调用填充主div的内容。我基本上有一个php脚本,它返回如下内容:

(简化的php脚本…)


if(isset($_POST["id_tuto"])){
  PrintHtml($_POST["id_tuto"]);
}
function PrintHtml($id)
{
  switch($id)
  {
    case [...]:
      echo "THIS IS MY HTML CONTENT";
    break;
    [...]
  }
}

然后,网页从echo命令中获取文本,并替换内容div的内部html

我的问题是:回显html内容的最佳方式是什么?每次都有很多内容,因为这是一个循序渐进的教程。每个字符串大约是50-80行HTML代码。有没有办法把html内容放在一个单独的html文件中,并回显该文件或。。。?

非常感谢!!

你可以这样做:

<?php
    function PrintHtml($id) {
      switch($id) {
          case [...]:
?>
      <h1>Tut page 1</h1>
      <p>this is html content.</p>
<?php
      break;
      [...]
    }
  }
?>

或者:

<?php
  function PrintHtml($id) {
     switch($id) {
      case [...]:
      include 'section1.php';
      break;
      [...]
    }
  }
?>

您只需按照通常生成HTML页面的方式进行操作,只是它没有封装在HTML HEAD或BODY标记中。这只是将添加到页面中的HTML片段。

您"回声"的所有内容都将成为输出的一部分。你可以一次完成它的部分或全部,这并不重要,因为它的调用会作为"响应"作为一个块发送到浏览器。

您应该使用模板系统,例如Smarty。这将允许您将html与代码逻辑分离。

尝试将数据(可读文本)与格式化(HTML)分离我怀疑可以分离50-80行HTML。您可以创建几个HTML模板,然后根据需要将数据添加到模板中。我肯定会使用Prototype或一些JavaScript库来处理在客户端接收JSON格式的数据。你可以把数据放在平面文件中,但我认为数据库会更快,更不容易出错。MVC模式在这里肯定会有所帮助。