使用一个输出表使用多个排序下拉列表的最佳方法是什么?

时间:2017-12-23 06:11:53

标签: php html-table

我使用PHP输出MySQL查询的结果。我将查询设置为显示所有行,基于1值进行限制,或限制多于1的值。

但是,我想知道如何最好地让PHP控制值的选择以限制查询。

输出表的TH标签将有下拉列表,它将重新加载页面并使用$ _GET传递查询值。

到目前为止,我已经做了一个下拉选择:

<select onchange="location = this.options[this.selectedIndex].value;">
<option value="nikki.php" <?php if (!isset($status)) { echo "selected"; } ?>>状況選択</option>
<option value="nikki.php?status=finished" <?php if ($status == "finished") { echo "selected"; } ?>>完了</option>
<option value="nikki.php?status=waitingforcallback" <?php if ($status == "waitingforcallback") { echo "selected"; } ?>>電話待ち</option>
<option value="nikki.php?status=unfinished" <?php if ($status == "unfinished") { echo "selected"; } ?>>末完了</option>
</select>​

如您所见,选择调用具有状态标记的页面以将数据传递给查询。

但是,如果我想进行另一个(或更多)下拉选择,该怎么办?

<select onchange="location = this.options[this.selectedIndex].value;">
<option value="<?php echo $_SERVER['PHP_SELF'] . '&type=AAA'?>">A</option>
<option value="<?php echo $_SERVER['PHP_SELF'] . '&type=BBB'?>">B</option>
<option value="<?php echo $_SERVER['PHP_SELF'] . '&type=CCC'?>">C</option>
</select>​

我知道我可以执行检查网址,然后添加"?status=XXX""&status=XXX",具体取决于当前的网址状态,但这会涉及很多ifs并且看起来不是最好的做我想做的事情。

我希望我的问题很清楚。

1 个答案:

答案 0 :(得分:0)

为什么不在一个类型数组中使用循环?

<?php $types = ['AAA', 'BBB', 'CCC']; 
      foreach ($types as $type) { 
        $linkValue = $_SERVER['PHP_SELF'] . '&type='. $type; ?>
        <option value="<?= $linkValue ?>"><?= $type ?></option>
   <? } ?>