在新页面中动态生成 HTML(服务器端)
Dynamically generated HTML (Server-side) in new page
出于学习目的,我正在构建一个简单的 Web 应用程序,允许用户为自己编写介绍页面。我对服务器端动态生成的 HTML 以及它如何连接到客户端感到非常困惑。我目前正在使用 PHP 和 Mustache 模板在服务器端生成关于页面 HTML 并且工作正常。
假设我输入 URL:localhost/intro.html
intro.html 上有一个按钮,如果我单击它,浏览器会带我进入一个新的 URL (localhost/intro.html/Adam) 和介绍一个用户的信息,就说 "Adam".
根据我的理解,这应该向服务器发送请求以生成包含关于 Adam 的信息的关于 HTML 页面并将该 HTML 页面发送回浏览器。
我不明白的是它在 HTML、JS (JQuery) 和 PHP 中会是什么样子。同样,我可以在服务器端生成 HTML 就好了,但是单击 localhost/intro.html 上的按钮如何将页面更改为 localhost/intro.html/Adam ?我的 PHP 代码如何检测页面 localhost/intro.html/Adam 并知道为其生成 HTML?代码是什么样的,我是否遗漏了一些概念?
任何方向、示例代码或教程将不胜感激。我只能找到 PHP 教程。谢谢!
好的,凭借您对数据库和查询的了解,您可以做到这一点...
创建您的主页...我们称之为 index.php
。
将此 js 放入您的 <head>
标签
函数 MM_jumpMenuGo(objId,targ,restore){ //v9.0
var selObj = null;与(文件){
如果 (getElementById) selObj = getElementById(objId);
如果 (selObj) eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
如果(恢复)selObj.selectedIndex=0; }
}
创建一个带有下拉列表的表单,该下拉列表具有动态生成的选项和一个提交按钮,位于重复区域内。
该下拉列表的值类似于 <option value="/<?php echo $row['username'] ?>"><?php echo $row['username'] ?></option>
您的提交按钮将调用 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
在数据库中查询从主页传递的用户名。
$name = $_GET['name']; // 这是主页上下拉菜单的名称
SELECT * 来自 mytable WHERE username=:name
确保绑定参数 $query->bindValue(':name', $name, PDO::PARAM_STR);
然后你可以这样回显你要显示的信息... <?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= [NC,L] # Handle page requests
大功告成。
注意:我使用的密码是pdo_mysql
。您可以获得更多信息here
出于学习目的,我正在构建一个简单的 Web 应用程序,允许用户为自己编写介绍页面。我对服务器端动态生成的 HTML 以及它如何连接到客户端感到非常困惑。我目前正在使用 PHP 和 Mustache 模板在服务器端生成关于页面 HTML 并且工作正常。
假设我输入 URL:localhost/intro.html
intro.html 上有一个按钮,如果我单击它,浏览器会带我进入一个新的 URL (localhost/intro.html/Adam) 和介绍一个用户的信息,就说 "Adam".
根据我的理解,这应该向服务器发送请求以生成包含关于 Adam 的信息的关于 HTML 页面并将该 HTML 页面发送回浏览器。
我不明白的是它在 HTML、JS (JQuery) 和 PHP 中会是什么样子。同样,我可以在服务器端生成 HTML 就好了,但是单击 localhost/intro.html 上的按钮如何将页面更改为 localhost/intro.html/Adam ?我的 PHP 代码如何检测页面 localhost/intro.html/Adam 并知道为其生成 HTML?代码是什么样的,我是否遗漏了一些概念?
任何方向、示例代码或教程将不胜感激。我只能找到 PHP 教程。谢谢!
好的,凭借您对数据库和查询的了解,您可以做到这一点...
创建您的主页...我们称之为 index.php
。
将此 js 放入您的
函数 MM_jumpMenuGo(objId,targ,restore){ //v9.0 var selObj = null;与(文件){ 如果 (getElementById) selObj = getElementById(objId); 如果 (selObj) eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'"); 如果(恢复)selObj.selectedIndex=0; } }<head>
标签创建一个带有下拉列表的表单,该下拉列表具有动态生成的选项和一个提交按钮,位于重复区域内。
该下拉列表的值类似于
<option value="/<?php echo $row['username'] ?>"><?php echo $row['username'] ?></option>
您的提交按钮将调用 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
在数据库中查询从主页传递的用户名。
$name = $_GET['name']; // 这是主页上下拉菜单的名称 SELECT * 来自 mytable WHERE username=:name
确保绑定参数
$query->bindValue(':name', $name, PDO::PARAM_STR);
然后你可以这样回显你要显示的信息...
<?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= [NC,L] # Handle page requests
大功告成。
注意:我使用的密码是pdo_mysql
。您可以获得更多信息here