【问题标题】:PHP store Button Name in SessionPHP在会话中存储按钮名称
【发布时间】:2013-09-12 20:02:20
【问题描述】:

我对 php 非常陌生,并且一直在学习一些教程。我有一个带有三个按钮的简单页面。当用户单击按钮时,我想将按钮的名称存储在会话中。这就是我所拥有的:

<?php
    session_start();
    $rep = $_SESSION[' *** selected button name ***'];
?>
<body>
  <form method='post' action='dpuform.php' target='_blank'>
    <input type='submit' name='sales' value='Sales'/><br/>
    <input type='submit' name='engineering' value='Engineering'/><br/>
    <input type='submit' name='production' value='Production'/><br/>
  </form>
</body>

然后我需要在下一页 'dpuform.php' 上检索这个值...

【问题讨论】:

    标签: php forms session


    【解决方案1】:

    您实际上无法将单击的按钮存储在同一页面的会话变量中,因为那是客户端代码。还有其他方法(1. ajax,2. 在表单提交到的页面上使用$_POST 值添加到会话变量,以及...),最简单的方法如下:如果您只需要访问单击的按钮从“dpuform.php”中,您可以在该页面中使用$_POST 变量来获取所选按钮的值。

    dpuform.php

    if(isset($_POST['sales'])){
       //sales button
    } else if(isset($_POST['engineering'])){
       //sales button
    } else if(isset($_POST['production'])){
       //sales button
    } else{
       //error handling
    }
    

    【讨论】:

    • 基本上我需要确定此表单的目标位置(销售、工程或生产)。所以在两个页面之间我需要传递变量。我认为我的问题是我不知道在括号 [' **** '] 之间放什么,因为我正在阅读 php 的所有内容都只允许一个特定的名称,而不一定是所选项目的名称。跨度>
    • @Sanya 是不是真正需要在第一页知道的选择?还是只有 dpuform.php 需要知道哪个被选中?如果是后者(这是我认为你需要的),请使用我的示例代码
    • 后者。那么解决方案是 $rep = $_POST['submit'] 吗?
    • @Sanya 不,因为您的输入都没有“提交”的名称,那就是 type。查看我的代码 - 这将检测单击了哪个按钮。
    【解决方案2】:

    您将在此任务中面临的基本问题是 HTML 在客户端(在浏览器中)运行,而 PHP 代码在服务器端运行。这意味着,为了在会话中存储任何内容,您实际上需要将数据传输到服务器端,例如通过表单提交。因此 HTML 代码被发送到浏览器,用户在那里填写并提交回服务器。然后你可以存储数据,而不是之前。这意味着没有“直接”的方式将 PHP 代码连接到 HTML,您必须将提交的数据从请求变量($_GET、$_POST 等)中取出并单独处理。

    【讨论】:

      猜你喜欢
      • 2018-06-08
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-26
      • 2017-12-06
      • 2015-02-20
      相关资源
      最近更新 更多