【问题标题】:How to write the code for the back button?如何编写返回按钮的代码?
【发布时间】:2011-04-09 06:08:16
【问题描述】:

我在这里有一个 php 代码,我想创建一个“返回”href 让我回到以前的位置。这是我所拥有的:

<input type="submit" <a href="#" onclick="history.back();">"Back"</a>

     <html>
     <head></head>
     <body>

     <?php
     // get form selection
     $day = $_GET['day'];
     // check value and select appropriate item
      if ($day == 1) {
      $special = 'Chicken in oyster sauce';
         }
      elseif ($day == 2) {
      $special = 'French onion soup';
       }
      elseif ($day == 3) {
       $special = 'Pork chops with mashed potatoes and green salad';
        }
      else {
      $special = 'Fish and chips';
      }
      ?>

      <h2>Today's special is:</h2>
       <?php echo $special; ?>
       <input type="submit" <a href="#" onclick="history.back();">"Back"</a>
       </body>
       </html> 

【问题讨论】:

标签: php button href


【解决方案1】:

如果你想这样做(我认为你现在正在尝试)然后替换这一行

<input type="submit" <a href="#" onclick="history.back();">"Back"</a>

有了这个

<button type="button" onclick="history.back();">Back</button>

如果您不想依赖 JavaScript,那么您可以获取 HTTP_REFERER 变量,然后在如下链接中提供它:

<a href="<?php echo $_SERVER['HTTP_REFERER'] ?>">Back</a>

【讨论】:

  • 不错的选项 - 您可能希望将type="button" 包含到您的按钮代码中,以便验证:)
  • @Basiclife:你怎么能那样做?
  • type 真的是强制属性吗? w3schools.com/tags/tag_button.asp
  • @Dave - 我正要链接到那个 :) 我相信“按钮”应该是默认类型,但我有浏览器使用提交作为默认类型的实例 - 如果你不期待提交。我已经让自己明确定义它 - 也就是说,你是对的,它不需要验证。
  • @Basiclife - 但这肯定不会错,所以我编辑了我的答案并添加了 type 属性:-)
【解决方案2】:

你需要告诉浏览器你正在使用javascript:

<a href="javascript:history.back(1)">Back</a> 

此外,您的输入元素在您的代码中似乎不合适。

【讨论】:

  • 您要求提供“后置href”。 button 可以是您点击的任何东西——如果您需要表单元素,请特别要求它们。无论如何,也许可以在你的文字中提出一个问题......如果你投了反对票,那么抱歉我懒得回答了。
  • @没问题没关系。对我不好。是的,我只要求后面的href。我已经在想象它会自动出现在按钮内。对不起
  • 不用担心。在这种情况下,请参阅其他答案。
【解决方案3】:
<input type="submit" <a href="#" onclick="history.back();">"Back"</a>

由于未关闭的input 元素,HTML 无效。

<a href="#" onclick="history.back(1);">"Back"</a>

够了

【讨论】:

  • 我相信他的意思是history.go(-1) :)
【解决方案4】:
<button onclick="history.go(-1);">Back </button>

【讨论】:

  • 这个完美...我可以调整后退按钮的空间吗?
  • @tintin 是的,你可以。 -1 告诉它在历史中去哪里,在这个例子中返回一个。
  • 我知道如何调整按钮的宽度和间距?
  • 警告:history.go(-1); 总是会让您在历史上倒退一步,即使该页面是您之前在浏览器的同一选项卡中打开的其他网站。
  • 别忘了type="button"属性
【解决方案5】:
<a href="javascript:history.back(1)">Back</a>

这个(by Eiko)很完美,用css做一个&lt;a&gt;的按钮... 例如,你可以在&lt;a&gt; 中使用这个css 类作为`

<a class=".back_button" href="javascript:history.back(1)">Back</a>`

.back_button {
display:block;
width:100px;
height:30px;
text-align:center;
background-color:yellow;
border:1px solid #000000;
}

【讨论】:

    【解决方案6】:

    在我的应用程序中,上面的 javascript 函数不起作用,因为我在一个页面中有很多 procrosses。所以下面的代码对我有用,希望对你们有帮助。

      function redirection()
            {
               <?php $send=$_SERVER['HTTP_REFERER'];?> 
                var redirect_to="<?php echo $send;?>";             
                window.location = redirect_to;
    
            }
    

    【讨论】:

    • $_SERVER['HTTP_REFERER']; 非常不可靠。
    • 在我的情况下 window.history 不起作用,我在 codeigniter 中尝试了这个,它给了我正确的重定向
    • 请注意,这会将 URL 发送到您的 Web 服务器。该页面的加载速度将比简单地在浏览器中执行 javascript 返回一页要慢。所以只有在由于某种原因无法使用javascript解决方案时才使用。
    • @ToolmakerSteve 绝对正确,就我而言,我有多个通过 AJAX 调用的视图。这些视图是根据工作流程调用的,这就是为什么普通 javascript 不适合我
    【解决方案7】:

    基本上我的代码会像这样将数据发送到下一页:

    **Referring Page**
    $this = $_SERVER['PHP_SELF'];
    echo "<a href='next_page.php?prev=$this'>Next Page</a>";
    
    **Page with button**
    $prev = $_GET['prev'];
    echo "<a href='$prev'><button id='back'>Back</button></a>";
    

    【讨论】:

    • 请解释在什么情况下这比使用标准的内置方式返回页面更可取,见其他答案。
    • 当我写那个答案的时候,我对 JS 并没有太大兴趣……但我不会说这一切都是错的,因为它更容易实现。您所要做的就是将它放在 href 属性中,而不是添加事件侦听器
    猜你喜欢
    • 2014-05-01
    • 1970-01-01
    • 2012-10-26
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多