在@teresko的帮助下,我设法使用下面的循环为我的网站创建动态网页(及其网址)。 我的问题如何在ahref
获取新创建的页面,将数据库中的数据与模板(我已经准备好)结合起来,以便用户点击它时,她/他去了填充数据的页面。我应该使用javascript点击功能(宁可不会)。我如何用php和html做到这一点?
以下是生成网址的循环:
<?php foreach ($reciperow as $recipe) { ?>
<a href="?id=<?php echo $recipe['uniqno'];?>"><h2><?php echo $recipe['rectitle'];?></h2></a>
<p class="subhead"><?php echo $recipe['recsummary']; ?></p>
<?php } ?>
非常感谢一个保持清除路由的解决方案,因为我的网站是一个基本项目,我计划在下一个项目中使用MVC和PHP路由。感谢。
答案 0 :(得分:1)
如果您的意思是How, when user clicks generated link, show him page with data from database accordingly to "id" he/she selected
,请执行以下操作:
<?php
$id = intval($_REQUEST['id']);
if ($id) { // user get here by clicking on link with id
$data = ... // fetch data from database
?>
<sometag>Some data from database:<?php echo $data['somecollumn']; ?></sometag>
...
<?php
} else {
// user just opened first page
// generate links list as usual
...
foreach ($reciperow as $recipe) {
?>
<a href="?id=<?php echo $recipe['uniqno'];?>"><h2><?php echo $recipe['rectitle'];?></h2></a>
<p class="subhead"><?php echo $recipe['recsummary']; ?></p>
<?php
}
...
}
?>
修改强>
这是通常对简单网站的做法吗?
取决于。
如果你在datadabe中只有一个实体,那么就没有参数冲突,id
只是标识符的收件人,但如果你打算同时显示f.e的详细信息。成分,家具和/或更多,然后你必须添加特定的。
喜欢,链接看起来像
<a href="?show=recipie&id=<?php echo $recipe['uniqno'];?>">
<a href="?show=ingredient&id=<?php echo $ingredients['id'];?>">
...然后必须相应地提取和显示数据:
$id = ...;
if ($id)
switch ($_REQUEST['show']) {
case 'recipie':
// show recipie data
break;
case 'ingredient':
// show ingredient data
break;
case ...
default:
// show start page
}
但是,添加其他实体后,您的.php
文件将会增长。另一个解决方案是添加单独的脚本来处理每个实体:
// generate links list as usual
...
foreach ($reciperow as $recipe) { // look at `recipie.php` portion of link's href
?>
<a href="recipie.php?id=<?php echo $recipe['uniqno'];?>"><h2><?php echo $recipe['rectitle'];?></h2></a>
<p class="subhead"><?php echo $recipe['recsummary']; ?></p>
<?php
}
将recipie.php
文件添加到与基本脚本相同的文件夹中,其中包含以下内容:
<?php
$id = intval($_REQUEST['id']);
if ($id) { // user get here by clicking on link with id
$data = ... // fetch data from database
?>
<sometag>Some data from database:<?php echo $data['somecollumn']; ?></sometag>
...
<?php
} else {
?>
<h1 class="error">No recipie ID specified</h1>
<?php
}
<?
当链接看起来像MVC
,routing
和/或{{}时,进一步探索将通过人性友好链接格式为您带来/home
和/recipie/12
的概念1}}甚至是/recipie/?id=12
。但这个故事又一次......