【问题标题】:Using a form (method=GET) to pass parameters defined elsewhere使用表单 (method=GET) 传递在别处定义的参数
【发布时间】:2013-10-09 21:33:19
【问题描述】:

这是一个如此简单的问题,恐怕我错过了一些基本的东西,所以请随意羞辱我,但我很难过。

我的目标:制作一个“继续”按钮来重新加载相同的页面,但增加 ?Page= 参数对 GET 可见。

我目前的方法:定义应该加载的新 URL(这个有点工作)

$_SESSION['NextPage'] = $_SESSION['Page']+1; 
$_SESSION['NewURL'] = $_SESSION['CurrentFile'] . '?Page=' . $_SESSION['NextPage'];
// N.B: $_SESSION['CurrentFile'] just specifies the URL of the current page.
// Note also that there should ALWAYS be a ?Page= parameter in the URL, even if it evaluates to NaN or something weird.

然后,稍后会调用一个函数来运行此代码并创建一个提交按钮。正如预期的那样,按钮在那里,但没有按预期工作:下面的代码和详细信息。

echo "<tr><td><form action='" . $_SESSION['NewURL'] . "' method='GET'> <input type='submit' value='Continue'></form> </td></tr>";

问题:当表单提交时,它不会在 URL 中附加任何 ?Page= 参数,无论是在 Chrome 还是 Safari 中。这是因为此表单中未指定 Page 参数吗?如果是这样,一定有办法解决这个问题,对吧? $_SESSION['NextPage'] 是一个会话变量,用于大声呼喊!更不用说当我在函数中回显$_SESSION['NewURL'] 时,可以在那里访问信息,?Page=2 等等。它只是没有推送到 URL。不幸的是,页面设置为根据$_GET['Page'] 的值显示不同的内容,现在没有任何东西可以控制该过程。

如果我刚刚犯了语法错误或其他什么,我会感到尴尬,但也松了一口气。我只是找不到它,也不知道该去哪里。谢谢!

【问题讨论】:

    标签: php html parameters get form-submit


    【解决方案1】:

    如果您想以简单的方式通过表单(GETPOST)传递变量,那么只需使用隐藏表单 input

    <input type="hidden" name="page" value="<?php echo $_SESSION['NextPage']; ?>">
    

    你的表格变成:

    echo "<tr><td>
    <form action='" . $_SESSION['NewURL'] . "' method='GET'>
      <input type='hidden' name='page' value='" . $_SESSION['NextPage'] . "'>
      <input type='submit' value='Continue'>
    </form>
    </td></tr>";
    

    【讨论】:

    • 感谢这个聪明的主意。不幸的是,它不能解决问题。现在至少我得到一个“?”在 URL 的末尾,但仍然没有其他内容。这很奇怪,对吧?
    • type='hidden' 更改为type='text',这将向您显示值。如果它为空,则 $_SESSION['NextPage'] 未正确设置。或者尝试直接在输入中输入一个值,例如“abc”,您的查询字符串应该包含?page=abc
    • 我的错!我重新加载了错误的文件。是的,这个解决方案有效 - 谢谢!对于我自己的教育,您介意解释一下为什么我的原始设置不起作用吗?
    • 我做了一点搜索:阅读这个问题的答案stackoverflow.com/questions/732371/…
    • 再次感谢您。我也搜索了很长时间,但从未遇到过那个帖子。
    猜你喜欢
    • 2013-06-16
    • 2014-11-20
    • 2023-03-19
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 2010-10-12
    相关资源
    最近更新 更多