【问题标题】:Dynamic page with json data - page template带有 json 数据的动态页面 - 页面模板
【发布时间】:2015-07-14 01:49:18
【问题描述】:


我的情况是这样的。
我需要创建一个这样的站点结构:HOME + SINGLE PAGE TEMPLATE like member.html

想想一个团队,一个人。单击其中一个时,我会显示SINGLE PAGE OF THE PERSON,因此member.html 的具体数据取自JSON。例如,如果我单击 John,则会出现 John 的个人页面,其结构为 member.html
我的想法是使用 Ajax 调用 PAGE TEMPLATE - member.html 并用来自 JSON 的数据填充它(在本例中为 John 数据)。一切都很好,我可以做到。

但现在我有一个问题。
有没有办法直接访问该单个页面?喜欢www.test.com/JohnDoe

谢谢大家!

【问题讨论】:

    标签: html ajax json database


    【解决方案1】:

    您可以使用 PHP 来做到这一点:每次使用数据执行(或显示)模板时,您都会使用成员的名称创建一个文件夹,并在该文件夹中使用成员的数据创建一个名为“index.html”的文件。

    接下来是两个PHP文件,第一个,create_subdir.php,让用户选择一个成员(ID=106的John Doe是硬编码的),然后调用member。 php,假设加载模板并在屏幕上显示数据(你做这部分:连接到数据库,选择数据,显示它),但它做了其他事情:它创建一个带有成员名称的文件夹并在此文件夹中创建一个名为“index.html”的文件,其中填充了成员的数据。他们在这里:

    create_subdir.php

    <html>
      <body>
        <form action="member.php" method="post">
          <input type="text" name="id" value="106" hidden/> <!-- JOHN DOE'S ID -->
          <input type="submit" value="Click to see John Doe's data" />
        </form>
      </body>
    </html>
    

    member.php

    <?php
    
    $id = $_POST["id"]; // GET MEMBER'S ID.
    $name = "John Doe"; // DATA RETRIEVED FROM DATABASE WITH "ID".
    // CREATE FOLDER WITH MEMBER'S NAME.
      $flag = mkdir( $name );
    // CREATE FILE.
      $flag = file_put_contents( $name . "/" . "index.html","Data to fill file" );
    
    echo "Page created = " . $flag;  // JUST TO CHECK IF EVERYTHING WENT FINE.
    // header( "Location: create_subdir.php" );  // RETURN TO PREVIOUS PAGE.
    ?>
    

    这种方法的好处是,每次为成员执行模板时,他的页面都会自动更新,因为他自己的文件夹中的“index.html”文件将被重新创建。

    【讨论】:

      【解决方案2】:

      如果您正在设计一个简单的 RESTful/CRUD 网站,您可能会将其编码为 URL 的一部分。因此,您的 AJAX 调用将发送到 www.test.com/users/:id:id 部分是您数据库中被点击的用户的 ID。

      当您在服务器端处理请求时,您可以检测该请求是否为 ajax 调用,并提供 JSON 或 HTML 响应。

      【讨论】:

      • 我在问题中给你更多信息:)
      【解决方案3】:

      我猜你可以在页面加载时检查 url。您可以使用

      访问当前网址
      window.location.href
      

      然后,一旦你有了这个,你只需要做一些简单的字符串解析来确定要进行哪个 ajax 调用以及要显示什么。

      【讨论】:

      • 我认为它不起作用,我如何分析该页面不存在的页面?会员页面类似于member.html
      猜你喜欢
      • 2014-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 2022-11-03
      • 2012-01-27
      • 1970-01-01
      • 2018-10-04
      相关资源
      最近更新 更多