通过单击超链接重新加载页面后保留表单值

发布于 2025-01-01 22:03:24 字数 531 浏览 0 评论 0原文

我正在尝试向搜索项目页面添加分页功能。所以我添加了一个带有 UL 的寻呼机,

echo '<ul>';
for($i=1; $i<=$pageCount; $i++)
{
    echo '<li><a href="' . $_SERVER['PHP_SELF'] . '?page=' . $i . '">' .  $i . '</a>';
}
echo '</ul>';

当我单击寻呼机中的页号时,我可以获得点击的页码,

if (isset($_GET['page']))
{
    $pageNo = $_GET['page'];
}

但无法保留用户输入的文本来搜索项目。我尝试了 $_POST['txtSearchText'] 但页面刷新后它不会保留该值。

通过超链接点击自行加载页面后,有没有办法保留 from 值(不使用会话)

I'm trying to add paging functionality to a search items page. so I have added a pager with UL as

echo '<ul>';
for($i=1; $i<=$pageCount; $i++)
{
    echo '<li><a href="' . $_SERVER['PHP_SELF'] . '?page=' . $i . '">' .  $i . '</a>';
}
echo '</ul>';

When I click on a Page No in Pager, I can get the page number clicked on by

if (isset($_GET['page']))
{
    $pageNo = $_GET['page'];
}

but I can not retain the text entered by the user to search items. I tried $_POST['txtSearchText'] but it does not retain the value after the page refreshed.

Is there a way to retain the from values (without using session) after self loading the page by hyperlink click?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

烟沫凡尘 2025-01-08 22:03:24

您可以让链接提交带有搜索参数的隐藏表单,或者将它们序列化为查询字符串的参数以与页码一起发送。

在第一种情况下,您需要 Javascript(因此您的“A”链接实际上会在表单中设置一个隐藏字段,并包含要转到的适当页码,然后提交表单)。
在第二种情况下,您不需要它,但您使查询字符串不太人性化。

否则,就会有会话(您可以将搜索保存在会话对象中,并且可能在分页链接中使用令牌,以便允许一次打开多个页面)甚至 cookie。

You will either have your links submit a hidden form with your search parameters, or you serialize them as parameters to your query string to send along with the page number.

In the first case you need Javascript (so your "A" link will in fact set a hidden field in the form with the appropriate page number to go to, and submit the form).
In the second case you do not need it, but you make the query string less human-friendly.

Otherwise there is session (you can save your search in a session object and maybe use a token in your paging links, in order to allow several pages open at once) or even cookies.

离鸿 2025-01-08 22:03:24

如果您使用 GET 请求,则只需将搜索查询添加到链接中即可:

echo '<ul>';
for($i=1; $i<=$pageCount; $i++)
{
    echo '<li><a href="' . $_SERVER['PHP_SELF'] . '?page=' . $i . '&query='.url_encode($search_query).'">' .  $i . '</a>';
}
echo '</ul>';

如果您希望使用 POST 请求,则应该像 @Palantir 所说提交表单或使用 AJAX。

我不会使用会话来存储搜索查询,因为在两个浏览器选项卡中打开两个不同的查询时可能会发生冲突。

If you are using GET requests, you can just add the search query to the link:

echo '<ul>';
for($i=1; $i<=$pageCount; $i++)
{
    echo '<li><a href="' . $_SERVER['PHP_SELF'] . '?page=' . $i . '&query='.url_encode($search_query).'">' .  $i . '</a>';
}
echo '</ul>';

If you wish to use POST requests, you should submit the form like @Palantir said or use AJAX.

I wouldn't use session for storing search queries due to possible collisions when two different queries are opened in two browser tabs.

老娘不死你永远是小三 2025-01-08 22:03:24

对于基于 GET 的搜索分页,我所做的是创建一个名为“Params”的类,其中包括以下方法:readURLParams 和generateURLParams。它还包含每个潜在参数的成员变量,例如搜索词、位置、页码、过滤器等。加载页面时,首先运行“readURLParams”,它将把所有 GET 参数读入对象的成员变量中。当您准备好为分页功能创建链接时,您可以运行genereateURLParams,这将创建您将附加到分页链接的URL 字符串。

现在,您不再需要手动跟踪所有 URL 参数,如果您想将方法更改为 POST 或其他形式的参数传递,则可以向类添加其他功能。

For GET-based search paging, what I do is create a class called "Params", which includes the following methods, amongst others: readURLParams and generateURLParams. It also contains a member variable for each potential parameter, such as search terms, location, page number, filters, etc. When a page is loaded, you first run "readURLParams" which will read all the GET parameters into the object's member variables. When you are ready to create links for the paging functionality, you then run genereateURLParams, which will create the URL string that you will append to the paging link.

Now you no longer have to manually keep track of all the URL paramters, and you can add additional functionality to the class if you want to change your method to POST or some other form of parameter passing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文