将 $_GET 变量传递到下一页

Posted

技术标签:

【中文标题】将 $_GET 变量传递到下一页【英文标题】:Pass $_GET variable to the next page 【发布时间】:2014-02-13 18:36:48 【问题描述】:

现在我正在尝试编写代码读取其他代码并使其工作,因为我拥有的一些项目是由其他开发人员制作的,我真的必须学习阅读其他代码,我已经完成了这项工作,但问题是当我尝试将此分页代码合并到 $_GET 变量时,会发生错误,当它加载第一页时,一切都很顺利,但是当我单击其他页面时,$_GET 变量会消失。我已经在网站上找到了一个代码,但我真的不知道如何将它与其他代码合并。

这是“MIGHT”解决问题的代码solving pagination $_GET

printf('<a href="%s?%s">Next</a>',$targetpage,http_build_query(array('page' => 2) + $_GET));

这里是生成链接 1 2 3 4 的代码部分。 .等等

$range = 3;

// if not on page 1, don't show back links
if ($currentpage > 1) 
   // show << link to go back to page 1
   echo " <a href='$_SERVER['php_SELF']?currentpage=1?srId=$srdd'><<</a> ";
   // get previous page num
   $prevpage = $currentpage - 1;
   // show < link to go back to 1 page
   echo " <a href='$_SERVER['PHP_SELF']?currentpage=$prevpage?srId=$srdd'><</a> ";
 // end if 

// loop to show links to range of pages around current page
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) 
   // if it's a valid page number...
   if (($x > 0) && ($x <= $totalpages)) 
      // if we're on current page...
      if ($x == $currentpage) 
         // 'highlight' it but don't make a link
         echo " [<b>$x</b>] ";
      // if not current page...
       else 
         // make it a link
         echo " <a href='$_SERVER['PHP_SELF']?currentpage=$x?srId=$srdd'>$x</a> ";
       // end else
    // end if 
 // end for

// if not on last page, show forward and last page links        
if ($currentpage != $totalpages) 
   // get next page
   $nextpage = $currentpage + 1;
    // echo forward link for next page 
   echo " <a href='$_SERVER['PHP_SELF']?currentpage=$nextpage?srId=$srdd'>></a> ";
   // echo forward link for lastpage
   //echo " <a href='$_SERVER['PHP_SELF']?currentpage=$totalpages?srId=$srdd'>>></a> ";

   printf("<a href='$_SERVER['PHP_SELF']?currentpage=$totalpages?srId=$srdd'>>></a>");
 // end if
/****** end build pagination links ******/
?>

【问题讨论】:

看看会话。 你的意思是会话变量?因为当您单击下一个链接时使用 $_GET 变量传递变量,所以 $_GET 变量变为空,因此 $_SESSION 变量我已经研究了它的性质并实际上已经对其进行了编码,任何其他建议都非常感谢。 【参考方案1】:

我已经弄清楚了,我在网上看到了很多关于这个问题的信息,还有一些在论坛上的解决方法

    <?php
    session_start();
    // store session data
    if (isset($_GET["srId"]))
       
        $_SESSION['variable']=$_GET["srId"];
        $srdd = $_SESSION['variable'];
    
else

    $srdd = $_SESSION['variable'];
    $tableName = $srdd."r"; 
   
    ?>

感谢您的回复。

【讨论】:

【参考方案2】:

您将需要使用会话变量或 cookie 将它们从一个页面传递到另一个页面。

$_GET 全局数组将是每个新页面的新数组,假设您正在发送 GET 请求并且可以在 URL 中看到它。

一般来说,网络是无状态的,这意味着它不会记住您从一个页面到另一个页面所做的事情,除非您使用 cookie、会话或数据库进行持久化。

设计你的链接

Page 1 | 2 | 3 | 4 

在链接中包含信息,以便他们为下一页做好准备

Page 1 = http://url?page=1&page_limit=25 
Page 2 = http://url?page=2&page_limit=25 
...
Etc

如果分页链接采用这种格式,这些变量将在 $_GET 数组中。

【讨论】:

我认为他主要是希望 URL 包含下一页上的 GET 值【参考方案3】:

尝试替换

echo " <a href='$_SERVER['PHP_SELF']?currentpage=1?srId=$srdd'><<</a> ";

echo " <a href='$_SERVER['PHP_SELF']?currentpage=1&srId=$srdd'><<</a> ";

在 url 中的初始 '?' 之后,应使用 '&' 将以下 *'$_GET[]'* 项与前面的项分开.请注意,您的 'srId=$srdd' 前面有一个 '?'

例子:

myurl.com?id=1234&page=help

这样做可以帮助您避免将信息存储在 $_SESSION 数组中,并保证 URL 的安全。

【讨论】:

感谢@dismer,我还想出了另一种使用isset解决它的方法。 提醒一下,这种方法会使数据超出内存。

以上是关于将 $_GET 变量传递到下一页的主要内容,如果未能解决你的问题,请参考以下文章

PHP 有 $_GET 变量,HTML 有啥? [复制]

如何使用angularjs变量使超链接移动到下一页?

将 GET 变量从第一页保存到另一页

将数据从按钮传输到下一页的帖子表单。 Django的

如何将选定页面中的选定值传递到下一页?

提交表单时将语言参数传递到下一页(url)