【发布时间】:2011-01-04 07:47:11
【问题描述】:
我有一个页面 (index.php),我在其中显示从 db 获取的最新事件和页面顶部的搜索框,如果有人搜索任何事件,那么所有与搜索有关的事件都会在页面上显示名称和链接。现在我需要什么
- 如果我们搜索某个事件并转到该事件页面并返回 (index.php) 则应显示最后一个搜索结果...现在如果我返回则显示最新事件。
- 如果我们当时去特定事件并关闭浏览器(或返回并关闭),如果再次打开该站点,我需要在 index.php 上显示上次访问的事件页面链接
- 如果我们第一次访问页面(或在 cookie 过期后),那么所有最新事件(现在只有 4 个最新事件)都应该显示。
-
如果我们搜索但未找到,则显示“未找到事件”并请求再次搜索。
目前第2点和第4点已经覆盖成功,但是第3点还没有完成,请以适当的方式提出我的逻辑条件,并建议我为第1点做什么
下面是我页面的主要代码
索引.php
<form action="<?=$_SERVER['PHP_SELF'];?>" method="get" accept-charset="utf-8">
<input type="text" name="keyword" id="keyword" placeholder="Search for Event" value="">
<input type="submit" name="submit" id="submit" value="Search" >
</form>
if(empty($_GET['keyword']) && !isset($_SERVER['HTTP_REFERER'])) {
if(!empty($_COOKIE['LAST_EVENT_ID'])) { ?>
<div class="module list">
<ul id="people">
<li>
<a href="eventinfo.php?evt_id=<?=$_COOKIE['LAST_EVENT_ID'];?>&evt_name=<?=$_COOKIE['LAST_VISITED_EVENT'];?>">
<h2><?=$_COOKIE['LAST_VISITED_EVENT']?></h2>
</a>
</li>
</ul>
</div>
<?php } }
// Note count($eventItems)==4 ( by default latest events)
else if(count($eventItems) == 0) { ?>
<h2>No Events found, please Search again</h2>
<?php }
else {
?>
<div class="module list">
<ul id="people">
<?php foreach($eventItems as $value) { ?>
<li>
<a href="eventinfo.php?evt_id=<?=$value->event_id?>&evt_name=<?=$value->name?>">
<h2><?=$value->name?></h2>
</a>
</li>
<?php } ?>
</ul>
</div>
eventinfo.php
<?php ob_start();
$evt_id=$_GET['evt_id'];
$evt_name=$_GET['evt_name'];
define('SITE_PATH','http://localhost/hello_world/');
define('EVENT_ID',$evt_id);
/* first remove old cookie value */
//setcookie("LAST_EVENT_ID",EVENT_ID, time()-3600*24*7);
//setcookie("LAST_VISITED_EVENT", $evt_name, time()-3600*24*7);
setcookie("LAST_EVENT_ID", EVENT_ID, time()+3600*24*7);
setcookie("LAST_VISITED_EVENT", $evt_name, time()+3600*24*7);
if (is_dir($evt_name)){
header("location:".EVENT_PATH);
}
else{
header("location:event_detail.php");
}
?>
请告诉我如何修改我的 if else 条件以满足上述所有要点
谢谢
更新
我还为所有情况创建了真值表,请帮助我开发逻辑.. 这是truth table的链接
【问题讨论】: