【发布时间】:2017-11-08 09:33:36
【问题描述】:
我正在使用 PHP 从 Azure SQL 数据库中提取数据,并成功创建了一个下拉(选择)框,其中包含从数据库中提取的选项。 SQL 查询返回 2 列,Title 和 Cycle_ID。
我已将标题设置为文本字符串,并将 Cycle_ID 设置为值。 我现在想将当前选择的值 (Cycle_ID) 存储在一个变量 (MyVariable) 中,我将在 SQL 查询中用于我正在创建的下一个下拉框,即 WHERE Cycle_ID = MyVariable。 这样,用户在通过我的下拉框向下工作时逐渐缩小他们的选择范围。 我当前的代码如下,但我不知道如何创建当前选择并将其存储到 MyVariable。
<?php
//create the database connection and define the query
$serverName = "myserver";
$connectionOptions = array(
"Database" => "mydatabase",
"Uid" => "mysqlaccount",
"PWD" => "mypassword"
);
//Establishes the connection
$conn = sqlsrv_connect($serverName, $connectionOptions);
//defines cycle query
$cyclesql= "SELECT [Cycle_ID]
,[Title]
FROM [ods].[Cycle]
WHERE End_Date > DATEADD(month,-6,GETDATE()) AND Updated IS NOT NULL
ORDER BY Cycle_ID Asc";
$cycleResults= sqlsrv_query($conn, $cyclesql);
if ($cycleResults == FALSE)
echo (sqlsrv_errors());
?>
<html>
<body>
<form action="cyclefile.php" method="post">
<div id="select">
<p>Select the week:</p><select name='Week'>
<option value="">Select...</option>
<?php
//starts loop
while ($row = sqlsrv_fetch_array($cycleResults, SQLSRV_FETCH_BOTH)) {
//defines cycle variable
$cycle = $row['Title'];
//defines cycle_id variable
$cycle_id = $row['Cycle_ID'];
//displays cycle variable as option in select (dropdown) list and cycle_id as value
echo '<option value="'.$cycle_id.'">'.$cycle.'</option>';
}
?>
</select>
</div>
</form>
</body>
</html>
【问题讨论】:
-
如果您不想重新加载网页,您将不得不使用 JavaScript。如果您不介意,则使用该变量作为 GET 构建一个新 URL,并构建它以显示新的下拉框
-
当您发回表单时,将有一个变量
$_POST["Week"]可用,其中包含该下拉列表中所选选项的ID。或者,如果您想在刷新页面之前在 Javascript 中使用值客户端,请澄清这一点,无论如何您都可以谷歌搜索它的示例。