【问题标题】:Using $_GET with a submit button使用带有提交按钮的 $_GET
【发布时间】:2013-05-04 04:03:28
【问题描述】:

我在 index.php 中有一个包含 3 列的表格:

ID   |   StName       |   Inspect
_________________________________
1     Wisconsin           INSPECT
2     Alabama             INSPECT 
3     Nebraska            INSPECT

最右边的列是一个提交按钮,它将用户带到一个名为inspect.php 的页面。当用户单击 INSPECT 按钮时,我想将相应的 ID 列值发送到 inspect.php,以便我可以在 inspect.php 中使用该值,我该怎么做?

目前我有:

//index.php

      echo "<table border = 1>
           <tr>
                <td>ID</td>
            <td>StName</td>
               </tr>";

         // go into a loop to create more rows -- omitted
         echo "<tr>";
            echo "<td>" . $resultArr[0] . "</td>";
            echo "<td>" . $resultArr[1] . "</td>";
            echo "<td>  <form action='inspect.php' method='get'>
                    <input type='Submit' value='Inspect'>
                    </form>
                 </td>";
            echo "</tr>";
      echo "</table>";

$resultArr[0] 包含我要发送到 inspect.php 的 ID 值

【问题讨论】:

    标签: php html html-table http-get


    【解决方案1】:

    因此,在表单中添加一个带有 name 属性的输入字段,该属性将是 inspect.php 页面上的索引键名称

    <form action='inspect.php' method='get'>
       <input type='hidden' name="id" value='<?php echo $resultArr[0]; ?>'>
       <input type='submit' value='Inspect'>
    </form>
    

    一个更好更简单的方法是不用提交,只需使用超链接,如

    <a href="inspect.php?id=<?php echo $resultArr[0]; ?>">Inspect</a>
    

    然后在inspect.php页面上处理这个id

    【讨论】:

    • 非常感谢!如果我使用您提到的第二种方法,我将如何在我的 inspect.php 页面中处理它?现在我在inspect.php中有这个: $stateId = $_GET[$resultArr[0]];但我什至不确定那是在做什么......
    • @IsaacPerez 使用if 条件,例如if(isset($_GET['id']) &amp;&amp; $_GET['id'] != '') {/* Process Here */}
    • @IsaacPerez 你应该接受你提出的问题的正确答案,这将有助于未来的访问者参考
    • 感谢您的回答和建议。我正在尝试使用您的代码打印出 ID,并在其中的“Process Here”部分中尝试像这样回显我的结果: echo $_GET['id'] 但没有任何反应。获取 ID 并将其存储在变量中的正确方法是什么?
    【解决方案2】:

    我想我得到了你想要的工作。我在数组中使用了不同的数据,但无论如何您应该能够根据需要进行更改。

    index.php:

    $resultArr = array("dave","fff","erere");
    
     echo "<table border = 1>
               <tr>
                    <td>ID</td>
                <td>StName</td>
                   </tr>";
    
             // go into a loop to create more rows -- omitted
             echo "<tr>";
                echo "<td>" . $resultArr[0] . "</td>";
                echo "<td>" . $resultArr[1] . "</td>";
                echo "<td>  <form action='inspect.php' method='get'>
       <input type='hidden' name='id' value=' $resultArr[0] '>
       <input type='submit' name='inspect' value='Inspect'> </td>";
                echo "</tr>";
          echo "</table>";
    

    inspect.php:

    if( $_GET['inspect']){
    
        $name = $_GET['id'];
            echo $name;
    
    }
    

    这会输出$resultArr[0] 的值,我认为这是您想要的。

    【讨论】:

      猜你喜欢
      • 2011-01-23
      • 1970-01-01
      • 2019-11-30
      • 2014-11-25
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      相关资源
      最近更新 更多