出于学习目的,我正在构建一个简单的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教程。谢谢!
答案 0 :(得分: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>
然后我们开始你的&#34;目标&#34;页面...我们称之为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
你已经完成了。
快乐的编码!
注意:我使用的代码是pdo_mysql
。您可以获得更多信息here