我有一个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 提交表单可能会有所帮助。它不需要重新加载页面。