首页 文章

在新页面中动态生成HTML(服务器端)

提问于
浏览
1

出于学习目的,我正在构建一个简单的Web应用程序,允许用户自己编写介绍页面 . 我对服务器端动态生成的HTML以及它如何连接到客户端非常困惑 . 我目前正在使用PHP和Mustache模板在服务器端生成关于页面的HTML,并且工作正常 .

假设我输入了URL:localhost / intro.html

在intro.html上有一个按钮,如果我点击它,那么浏览器会带我到一个新的URL(localhost / intro.html / Adam)和用户的介绍信息,让我们说“亚当” .

根据我的理解,这应该向服务器发送一个请求,以生成一个关于Adam的信息的HTML页面,并将该HTML页面发送回浏览器 .

我不明白的是它在HTML,JS(JQuery)和PHP中会是什么样子 . 再一次,我可以在服务器端生成HTML,但是如何点击localhost / intro.html上的按钮将页面更改为localhost / intro.html / Adam?我的PHP代码如何检测localhost / intro.html / Adam页面并知道为它生成HTML?代码是什么样的,我错过了一些概念?

任何方向,示例代码或教程将非常感激 . 我所能找到的只是PHP教程 . 谢谢!

1 回答

  • 2

    好的,凭借您对数据库和查询的了解,您可以做到这一点......

    创建您的主页...我们将其称为 index.php .

    1)将此js放在 <head> 标签中

    <script type="text/javascript">
    function MM_jumpMenuGo(objId,targ,restore){ //v9.0
      var selObj = null;  with (document) { 
      if (getElementById) selObj = getElementById(objId);
      if (selObj) eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
      if (restore) selObj.selectedIndex=0; }
    }
    </script>
    

    2)在重复区域内创建一个带有下拉列表的表单,该下拉列表具有动态生成的选项和提交按钮 .

    3)该下拉列表的值类似于 <option value="/<?php echo $row['username'] ?>"><?php echo $row['username'] ?></option>

    4)您的提交按钮将调用javascript将您发送到您想要的页面
    <input type="button" name="go_button" id= "go_button" value="Go" onClick="MM_jumpMenuGo('jumpMenu','parent',0)">

    完成主页...

    <form name="form1">
      <select name="name" id="name">
        <option selected>Please make a selection</option>
        <?php do { ?>
        <option value="/<?php echo $row['username'] ?>"><?php echo $row['username'] ?></option>
        <?php } while($row = $query->fetch(PDO::FETCH_ASSOC)) ?>
      </select>
    <input type="button" name="go_button" id= "go_button" value="Go" onClick="MM_jumpMenuGo('select14','parent',0)">
    </form>
    

    然后我们从你的“目标”页面开始...我们称之为results.php

    1)在数据库中查询从主页面传递的用户名 .

    $name = $_GET['name']; // this is the name of the dropdown on the main page
    SELECT * FROM mytable WHERE username=:name
    

    2)确保绑定参数 $query->bindValue(':name', $name, PDO::PARAM_STR);

    3)然后你可以回显你想要显示的信息...... <?php echo $row['fieldname'] ?>

    最后, .htaccess 文件......

    创建一个重写规则来处理这个......

    RewriteEngine On    # Turn on the rewriting engine
    RewriteCond %{REQUEST_FILENAME} !-f # if this is not a real file
    RewriteCond %{REQUEST_FILENAME} !-d # if this is not a real directory
    RewriteRule    ^([A-Za-z0-9_-]+)$    results.php?name=$1    [NC,L]    # Handle page requests
    

    而且你已经完成了 .

    快乐的编码!

    Note: 我使用的代码是 pdo_mysql . 你可以获得更多信息here

相关问题