如何在 PHP 变量中保存 HTML 选择中的选定项


How can I save the selected item from an HTML select in a PHP variable?

我有一个HTML选择,其中下拉列表是从SQL查询创建的。

我想知道如何将用户选择的项目保存到可以传递给其他 PHP 页面的 PHP 变量中。

谢谢。

<tr>
  <td>DRM Staff List</td><span class="required">*</span>:<br />
    <td>
      <select name="unit">
          <?php 
              $conn = oci_connect("username", "password", "url");
              $sql = 'select distinct "DRM Primary" from GIS_DATA_LOAD where "DRM Primary" is not null order by "DRM Primary" asc' ;
              $stid = oci_parse($conn, $sql);
              $success = oci_execute($stid);
              echo $success;
              while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS+OCI_ASSOC))
              {
                  echo "<option value='"unit1'">" . $row['DRM Primary'] . "</option>";
              }
          ?>
      </select>
    </td>
</tr>

表单标签中添加代码,如下所示,并使用javascipt作为onselect进行表单提交操作($_POST或$_GET)。由于代码在客户端,因此您必须确保将其提交到服务器以将所选选项保存在php变量中。

    <tr>
    <td>DRM Staff List</td><span class="required">*</span>:<br />
    <td>
      <form action="" method="POST" name="myform">
      <select name="unit" onchange="this.form.submit()>
          <?php 
              $conn = oci_connect("username", "password", "url");
              $sql = 'select distinct "DRM Primary" from GIS_DATA_LOAD where "DRM Primary" is not null order by "DRM Primary" asc' ;
              $stid = oci_parse($conn, $sql);
              $success = oci_execute($stid);
              echo $success;
              while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS+OCI_ASSOC))
              {
                  echo "<option value='"unit1'">" . $row['DRM Primary'] . "</option>";
              }
          ?>
      </select>
      </form>
    </td>
</tr>

现在要将提交的表单另存为 PHP 中的值,我们将使用以下代码

<?php
if(isset($_POST['myform']))
$selected_unit=$_POST['unit'];
?>

您也可以使用 onselect() 函数...不确定..希望对您有所帮助。感谢:)

您可能希望为每个选项设置一个唯一的值,
否则无法知道实际选择了哪个选项。

当您提交表单时,PHP 将在内部生成一个super global array。听起来,这是全局的,可以通过变量在脚本执行中的任何位置访问:

  • $_POST
  • $_GET

因此,提交表单后,如果这是一个HTTP post请求,那么您应该像这样找到您的价值:

echo $_POST['unit']; // Unit 1 etc

还有其他"超全局变量"。有关详细信息,请参阅文档。

无法从客户端设置变量。使用 AJAX 提交表单可能会有所帮助。它不需要重新加载页面。