【问题标题】:Increase/decrease parameter in query parameter $_GET through links通过链接增加/减少查询参数 $_GET 中的参数
【发布时间】:2016-01-17 17:12:54
【问题描述】:

最近,我通过在我的大学网站上找到的一些课程开始学习 PHP(别担心,这不是家庭作业,这是我自己做的) 我被困住了。作业是这样的:

创建一个包含两个链接的页面,一个用于增加,一个用于减少参数“n”,应通过 $_GET 查询参数访问。如果未设置“n”,则假定其值为 4。

所以,我尝试了这样的事情(一开始只是为了增加):

<form action="<?php $_PHP_SELF ?>" method="GET">
      <input type="hidden" name="n" value="4">
      <input type="submit">
 </form>

我的 PHP 代码是这样的:

<?php
$var = 4;
if(!isset($_GET['n'])) {
    $_GET['n'] = $var;
} else {
    $var = $_GET['n'];
    $var++;
    $_GET['n'] = $var;
}
echo $_GET['n'];
?>

但这似乎根本不起作用。我猜 'n' 也应该在 URL 中自动更改。另外,我怎么能“提交”按钮,一个用于增加,一个用于减少?

任何人都可以提供帮助(如果可能的话,提供一些很好的指导性解释)以及是否可以仅使用 HTML 链接来实现,因为课程还没有通过表单。

【问题讨论】:

  • 在我的大学,您可以免费访问所有科目和讲座,并提供免费材料。所以我实际上并没有参加这门课程,而是在我的主要课程之外做这门课程。是的,这是作业的引用。如果你愿意,我可以提供链接,但它是克罗地亚语的。

标签: php methods hyperlink parameters get


【解决方案1】:

在表单代码中:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
  <input type="hidden" name="n" value="<?php echo $var; ?>">
  <input type="submit">
</form>

编辑

使其增加/减少:

<?php
  if(!isset($_GET['n'])) {
    $var = 4;
  } else {
    $var = $_GET['n'];
  }
  echo 'Value = ' . $var;
?>

<p>
  <a href="<?php echo $_SERVER['PHP_SELF']; ?>?n=<?php echo $var+1;?">Increase</a>
  <a href="<?php echo $_SERVER['PHP_SELF']; ?>?n=<?php echo $var-1; ?>">Decrease</a>
</p>

【讨论】:

    【解决方案2】:

    您的 PHP 代码可以简化为:

    if (!isset($_GET['n'])) {
        $_GET['n'] = 4;
    }
    $_GET['n']++; // you can do that
    

    但是,您可能不想直接增加或减少 $_GET['n']。尝试只保留if 部分,然后在输出链接时递增或递减:

    <?php
        if (!isset($_GET['n'])) {
            $_GET['n'] = 4;
        }
    ?>
    <a href="<?php echo $_SERVER['PHP_SELF'] . "?n=" . ($_GET['n'] + 1) ?>">increment n</a>
    <a href="<?php echo $_SERVER['PHP_SELF'] . "?n=" . ($_GET['n'] - 1) ?>">decrement n</a>
    

    请注意,通过$_GET$_POST 传递参数不需要表单——您只需构建一个传递参数的URL,就像我在这里所做的那样。

    【讨论】:

    • 非常感谢!这完美!我不知道您可以将 PHP 代码作为 href 传递给链接。再次感谢。
    • @renato.ruskan 没问题,很高兴它有帮助!是的,你可以在任何你喜欢的地方运行 PHP 代码,甚至在你可以看到的 HTML 标记的中间。当然你也可以使用echo输出整个链接(比如echo '&lt;a href="' . $_SERVER['PHP_SELF'] . '?n=' . $_GET['n'] + 1) . '"&gt;increment n&lt;/a&gt;';;这完全取决于你
    猜你喜欢
    • 2020-09-24
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多