【问题标题】:Selecting an option using PHP使用 PHP 选择选项
【发布时间】:2020-12-21 11:14:39
【问题描述】:

我无法选择应用于<select> 标记的当前过滤器。 该代码正在填充组合框。我唯一担心的是,我找不到在页面加载后选择某个选项的方法。 正如您在第二张图片中看到的那样,过滤器有效,但选择的选项仍然是 'Select Wallet',而它应该是 'Paymaya'。 关于如何根据我点击的内容正确地将 "selected" 属性应用到 <option> 标记的任何想法。

我希望我解释得很好。 我是初学者。很抱歉代码乱七八糟。

这是我填充选择标签的代码:

<select name="filter_wallet" id="filter">
      <option value="0">Select Wallet</option>
      <?php
         // Fetching wallets into combobox
         $sql2 = "SELECT wallet_id, wallet_name FROM wallets";
         $wallet = $con->query($sql2) or die($con->connect_error);
         $resultWallet = $wallet->num_rows;

         if($resultWallet > 0){
           while($row2 = $wallet->fetch_assoc()){
         ?>
     <option value="<?php echo $row2['wallet_id']; ?>"><?php echo $row2['wallet_name']; ?></option>
     <?php }} ?>

这是我提交过滤器按钮后的代码:

$wallet_id = 0;
if(isset($_POST['submitFilter'])){
    $wallet_id = $_POST['filter_wallet'];
    if($wallet_id == 0){
        $sql = "SELECT * FROM vw_transactions ORDER BY date DESC, time DESC";
    }else{
        $sql = "SELECT * FROM vw_transactions WHERE wallet_id='$wallet_id' ORDER BY date DESC, time DESC";
    }
}else{
    $sql = "SELECT * FROM vw_transactions ORDER BY date DESC, time DESC";
}
$transactions = $con->query($sql) or die($con->connect_error);
$resultTransaction = $transactions->num_rows;

所有结果

过滤结果

【问题讨论】:

  • 干! $wallet_id = 0; $sql = "SELECT * FROM vw_transactions ORDER BY date DESC, time DESC"; if(isset($_POST['submitFilter'])){ $wallet_id = $_POST['filter_wallet']; if($wallet_id != 0){ $sql = "SELECT * FROM vw_transactions WHERE wallet_id='$wallet_id' ORDER BY date DESC, time DESC"; } } $transactions = $con-&gt;query($sql) or die($con-&gt;connect_error); $resultTransaction = $transactions-&gt;num_rows;
  • 当您循环显示钱包选项时,您需要将每个id与您选择的wallet_id进行比较,并将selected="selected"添加到匹配的选项标签中。
  • @droopsnoot 谢谢,这解释了逻辑。

标签: php html sql select


【解决方案1】:

类似

<select name="filter_wallet" id="filter">
      <option value="0">Select Wallet</option>
      <?php
         $filter = isset($_POST['filter_wallet']) ? $_POST['filter_wallet'] : "";  
         // Fetching wallets into combobox
         $sql2 = "SELECT wallet_id, wallet_name FROM wallets";
         $wallet = $con->query($sql2);
         $resultWallet = $wallet->num_rows;

         if($resultWallet > 0){
           while($row2 = $wallet->fetch_assoc()){
           if ($row2['wallet_id'] == $filter)
               $sel = " selected";
           else
               $sel = "";
         ?>
     <option value="<?php echo $row2['wallet_id']; ?>" <?php echo $sel; ?>><?php echo $row2['wallet_name']; ?></option>
     <?php }} ?>

假设你的 wallet_id 永远不能为空。如果可以,请使用其他无效的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-30
    • 2013-07-16
    • 2014-04-14
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    相关资源
    最近更新 更多