【问题标题】:Use selected Option as variable in PHP Select Dropdown在 PHP Select Dropdown 中使用选定的选项作为变量
【发布时间】: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 中使用值客户端,请澄清这一点,无论如何您都可以谷歌搜索它的示例。

标签: php html sql


【解决方案1】:

我建议您对选择进行 ajax 调用并传递选定的值以在另一个文件中处理您的结果,您可以在其中运行您的查询。

<select name="cycle_data" id="cycle_id">
   <option value="cycle1" > Cycle 1</option>
   <option value="cycle2" >Cycle 2</option>
</select>

然后让我们做一个脚本:

 <script type="text/javascript">
   $(document).ready(function(){ 
   $("#cycle_id").change(function(){ 
   var cycle_data = $(this).val(); 
   var dataString = "cycle_data="+cycle_data; 

    $.ajax({ 
    type: "POST", 
    url: "get-data.php", 
    data: dataString, 
    success: function(result){ 
      // Process your result here
    }
    });
    });
   });
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-01
    • 2019-06-17
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 2016-01-31
    • 2018-10-13
    • 1970-01-01
    相关资源
    最近更新 更多