我已经开发了一个Php&Mysql数据驱动的网站“学生进度报告门户”。其导航栏包含3个页面1,页面2和页面3的链接。 第1页显示:学生进度总体测试结果百分比摘要(默认情况下,其mysql选择查询是从班级开始日期到截止日期),第1页还具有两个日期类型的文本框,进度报告按钮用于按日期显示学生的考试进度“第2页”和“出勤”按钮在第3页上显示“明智的出勤”。
通过直接单击Page 2链接和Page3链接,它没有显示任何内容,因为首先,我们必须在页面1上选择日期,然后必须单击Progress Button或Attendance Button才能在Page 2上获取“ mysql基本查询结果”和Page3分别。在页面2和页面3上获得结果后,当用户单击导航栏上的页面2和页面3链接时,它将刷新,结果消失。我希望两个页面(第2和3页)都保持相同的结果,尽管在导航栏上单击了它们的链接。如何解决这个问题?
答案 0 :(得分:0)
当您在Bootstrap-> Bootstrap tab ( in the middle of the page )
中单击“ Page2”或“ Page3”时,您可以使用JavaScript来不刷新页面或者,您也可以在第1页上单击一个系统,在第2页上,它将仅获得所需的前20个元素,在第2页上,则是第21个元素至第40个元素... 然后您发出COUNT(*)请求以了解您将拥有多少页。
答案 1 :(得分:0)
@ user2332060,
我从您的描述中了解到,在所有三个页面上都需要不同的结果:我建议使用jQuery和ajax来实现。
当结果通过mysql query从第1页加载时(从date到todate),您具有这些日期,当您单击Page2或Page3时,调用ajax函数并传递这些日期,或者如果用户选择任何日期,则在ajax中传递该日期并加载结果第3页和第3页。
现在,当您重新加载或刷新第2页或第3页时,您说结果消失了,因为您从未通知脚本从何处获取数据,因此请尝试将Windows onload函数放在jquery中,并对每个页面使用默认的mysql查询。
希望这会有所帮助!
答案 2 :(得分:0)
如果我正确理解了您的问题,那么您要尝试通过的是通过第1页上选择的内容,以便该选择适用于第2页和第3页?如果我的理解是正确的,那么您可以在浏览器中通过或发布选择。为了安全起见,您甚至可以对其进行哈希处理,以使其无法被拦截。下面是对您可以做的事情的简要介绍,如果我正确地理解了您的问题,那么我可以详细介绍以下方法。
第1页:
if($_POST['date'] && ...){
$url="page2.php?dt=$_POST['date']";
}
第2页:
$date=$_REQUEST['dt'];
$sql="... Where date='".$date."'";
答案 3 :(得分:0)
您可以使用会话或环境变量来执行此操作,当您使用自定义选定的日期从page1重定向到page2时,可以将它们存储在会话变量中。
$_SESSION['page2'] = $date;
类似地,您可以为page3做
$_SESSION['page3'] = $date;
注意:为两个页面创建不同的会话密钥,并在每次加载page1时在会话变量中设置未设置的值
unset($_SESSION['page2']);
unset($_SESSION['page3']);
希望它会对您有所帮助。