通过链接

时间:2015-10-19 11:17:48

标签: php methods hyperlink parameters get

最近,我开始通过我在大学网站上找到的一些课程学习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链接制作它,因为课程还没有通过表格。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

您的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传递参数 - 您只需构建一个传递参数的网址,就像我在此处所做的那样。