【问题标题】:php button value issuephp按钮值问题
【发布时间】:2017-01-18 10:22:59
【问题描述】:

我是 PHP 新手,我在表格中的按钮遇到了问题。单击按钮时,它需要获取从数据库中提取的 ID 号。我可以轻松获取数据并将其传递到下一页使用...

<form action="ThisPage.php" method="post">
    <td><input name="Submit" type="submit" value=<?php echo $OrderNumber; ?> ></td>
</form>

除了 $OrderNumber 变量显示在按钮本身之外,一切都运行良好。我希望按钮显示为“编辑”,而不是附加图像中显示的 $OrderNumber 变量。

如何让按钮显示“编辑”,但应用 $OrderNumber 值的发布值?我一直无法找到一种方法来完成正确和唯一数据的传递,同时还显示一个不会混淆最终用户的按钮。

为了进入下一页,我正在检查 PHP 脚本开头的已发布值。如果有一个已发布的值,在本例中为 $OrderNumber,那么脚本会将变量带到下一页,如下所示...

<?php  
    if(!empty ($_POST['Submit']) )
       {
        $_SESSION['OrderID']=$_POST['Submit'];
        header("location:NextPage.php");
        exit;
       }    
?>

但是如果没有发布的数据,页面会运行并显示代表数据库条目数组的行。除了这个按钮标签,一切都很好。

【问题讨论】:

  • 您需要使用session_start() 启动会话,然后才能在$_SESSION 超级全局中存储/检索数据
  • 您的 HTML 无效。您不能将 &lt;td&gt; 包装在 &lt;form&gt; 中。
  • 使用button 而不是input
  • value=""
  • @putvande 为什么我们不能在
    中使用 ?

标签: php html


【解决方案1】:

试试这个

<form action="ThisPage.php" method="post">
    <input type="hidden" name="order_id" value="<?php echo $OrderNumber; ?>" />
    <td><input name="Submit" type="submit" value="Edit" /> </td>
</form>

<?php  
    if(!empty ($_POST['Submit']) )
    {
        $_SESSION['OrderID']=$_POST['order_id'];
        header("location:NextPage.php");
        exit;
    }    
?>

添加隐藏字段,因为我们可以在表单中传递任何值而不显示我们必须添加此方法。

【讨论】:

  • 为什么有人要“试试这个”?你改变了什么?为什么改变了?为什么这是必要的改变?
  • 我添加了隐藏文件@Qirel,是的,有必要更改
  • 我的意思是,您应该始终在答案中添加说明您更改了什么以及原因。 @LPChip 的答案有这个,这使它成为一个更好的答案。
【解决方案2】:

最好的方法是使用第二个元素。您的代码如下所示:

<form action="ThisPage.php" method="post">
    <td>
        <input type="hidden" name="ordernumber" value="<? =$OrderNumber; ?>" />
        <input name="Submit" type="submit" value="Edit"/>
    </td>
</form>

在下一页,您现在可以使用$_POST['ordernumber']。要使用会话,请确保 session_start();放置在检索或存储之前,并确保在发出 session_start() 之前没有将任何内容打印到屏幕上,也没有输出任何标题;

【讨论】:

    【解决方案3】:

    虽然解释不足,但 Bhavin Sasapra 的回答非常有效。

    LPChip 提供的答案非常接近,但我的脚本无法运行;

    <input type="hidden" name="ordernumber" value="<? =$OrderNumber; ?>" />
    

    我不得不使用

    value="<?php echo $OrderNumber; ?>" />
    

    我使用的是 PHP 5,所以这可能是问题所在。如果我有其他问题,我一定会说明的。

    事实证明,您可以在表格内打开表单。

    【讨论】:

      【解决方案4】:

      试试这个:

      <?php
      session_start();
      if(!empty ($_POST['Submit']) )
      {
          $_SESSION['OrderID'] = $_POST['Submit'];
          header("location:NextPage.php");
      }    
      ?>
      

      【讨论】:

        猜你喜欢
        • 2012-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-10
        • 1970-01-01
        • 2011-02-28
        • 1970-01-01
        • 2022-07-24
        相关资源
        最近更新 更多