0

我有一个 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>
4

4 回答 4

1

如下在表单标签中添加代码,并使用 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()函数......不确定..希望它有帮助..谢谢:)

于 2013-09-23T21:31:44.223 回答
0

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

于 2013-09-23T21:11:09.353 回答
0

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

  • $_POST
  • $_GET

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

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

还有其他“超全球”。有关更多信息,请参阅文档。

于 2013-09-23T21:12:50.287 回答
0

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

于 2013-09-23T21:37:43.520 回答