多个 <select> 下拉列表作为 sql 参数 | PHP

Posted

技术标签:

【中文标题】多个 <select> 下拉列表作为 sql 参数 | PHP【英文标题】:multiple <select> dropdown as sql parameters | PHP 【发布时间】:2019-11-29 11:28:03 【问题描述】:

我有一个基于 1 &lt;select&gt; 下拉值执行 sql 查询的运行代码。请问如何使用 2 个或更多 &lt;select&gt; 下拉菜单来执行多个查询参数?

示例。我根据accounttitle 对数据进行了排序,现在我想通过YEAR(datedue)accountttitle 进行排序,我该怎么做?

这是我目前得到的。

对于isset()

  if(isset($_GET['accounttitle']))
    $accounttitle = $_GET['accounttitle'];

    $year = date('Y');
  if(isset($_GET['year']))
    $year = $_GET['year'];
  
  else "PLEASE SELECT OPTION";
   
  ?>

对于&lt;select&gt;

<div class="col-sm-9">
<select class="form-control" id="select_account_title" style="text-transform:uppercase" required>
  <option value="">PLEASE SELECT OPTION</option>
  <?php while ($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)): ?>
    <option value="<?= urlencode($row['accounttitle'])?>"><?= $row['accounttitle'] ?></option>
  <?php endwhile; ?>
</select>
<label>Select Year: </label>
<select class="form-control input-sm" id="select_year">
                      <?php
                        for($i=2013; $i<=2033; $i++)
                          $selected = ($i==$year)?'selected':'';
                          echo "
                            <option value='".$i."' ".$selected.">".$i."</option>
                          ";
                        
                      ?>
                    </select>
</div>

对于SQL


                    $sql = "SELECT referenceno, employeeidno, accounttitle, 'ON PROGRESS' as debit, postedby, approvedby, notedby, credit FROM earningsamendment where accounttitle= '$accounttitle' and YEAR(datedue)='$year'";
                    $query = sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
                    while($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC))

这是我的担心。

$(function()
  $('#select_account_title').change(function()
    window.location.href = 'earnings_amendment.php?accounttitle='+$(this).val();
  );
);
</script>

如何启用&lt;script&gt; 读取 2 个参数?喜欢

$(function()
  $('#select_account_title').change(function()
    window.location.href = 'earnings_amendment.php?accounttitle='+$(accounttitle).val()'&year='+$(year).val();
  );
);
</script>

还是类似的?

【问题讨论】:

@Dharman 对此进行了说明。一旦一切正常,我会修复一切。感谢您的提醒。 【参考方案1】:

您需要使用多个选择器进行 on 更改。

$(document).on('change', '#select_account_title, #select_year', function() 
    var account_title = $("#select_account_title").val();
    var year = $("#select_year").val();

    window.location.href = 'earnings_amendment.php?accounttitle='+account_title+'&year='+year;
  );

【讨论】:

谢谢您,先生!这正是我所需要的!如果你不介意的话,你是救生员。你能给我一个更好的学习链接吗&lt;script&gt;我很难理解互联网上的指南。

以上是关于多个 <select> 下拉列表作为 sql 参数 | PHP的主要内容,如果未能解决你的问题,请参考以下文章

从Yii上的多个选择下拉列表中获取值以插入数据库

如何使用 jquery json 和 php 更改多个下拉列表

在选择下拉列表中选择多个选项

html中<select>标签用法解析及如何设置select的默认选中状态

下拉列表Select的操作

创建多个数组列表