我有一个分类广告网站,在 index.html 中有一个表单。 此表单目标设置为iframe,也位于 index.html 。
<form id="main" name="main" action="search.php" target="iframe" method="get">
我在加载页面时使用body onload
提交表单:
<body onload='submit_form();'>
结果如我在 iframe 中所显示的那样,我使用MySql Limit来创建分页。 我向用户显示“下一个”和“上一个”:(所有这些都显示在iframe中,所以我在父页面上调用该函数,如下所示)
<a onclick='window.parent.page_upd(2)'>Page 2</a>
function page_upd(p){
document.getElementById('page').value=p;
document.forms['main'].submit();
}
<input type="hidden" id="page" value="1">
如您所见,我将 index.html 中的隐藏输入设置为 pagenumber 我希望用户查看,然后我提交表单,并在操作(search.php)中我获取页面并相应地显示:
//search.php
$page = $_GET['page'];
分页适用于所有浏览器,因此可以使用不同的页面。 但是当实际点击搜索结果,并转到完全不同的链接(show_ad.php),然后回击时,用户将被带回搜索结果的第一页。
换句话说,“页面”再次设置为1。 但并非在所有浏览器中,FF甚至IE6“记住”“页面”值,并且它仍然是“2”(例如第二页),因此表单提交显示第二页
但在Chrome和Opera中,页面设置为“1”。
有人知道为什么在浏览器中回来时“页面”输入值再次设置为1?
由于
答案 0 :(得分:1)
我认为这与浏览器缓存有关。有些浏览器似乎加载了页面,就好像你对该页面进行了新的加载,而其他浏览器仍然从缓存中取出了正确的页面。
解决方法可能是在您的应用程序中包含一个自己的后退按钮,将用户发送到正确的页面。
答案 1 :(得分:0)
您的输入字段需要name
属性才能在提交时用作参数名称。 id
属性仅用作标识符以查找页面上的元素。
<input type="hidden" id="page" name="page" value="1">
^^^^^^^^^^^
答案 2 :(得分:0)
那是因为页面没有再次加载,因此没有onLoad()