【问题标题】:How to make the PHP HTML from drop down list remember the last selection?如何使下拉列表中的 PHP HTML 记住最后的选择?
【发布时间】:2021-06-04 07:42:46
【问题描述】:

我正在尝试让我的下拉列表记住最终用户的最后选择。我可能有语法错误,但找不到我犯错误的地方。基本上,我使用 PHP 连接到 mySQL 服务器以填充基于 HTML 的下拉表单菜单。然后我让用户选择并创建一个网络报告。虽然我希望默认情况下在表单中记住最后一个选择。你能帮我解决下面不执行的语法吗?

    <?php
        $mysqli = NEW MySQLi($host, $user, $pass, $name);
        $resultSet = $mysqli->query ("SELECT DISTINCT account FROM table");
    ?>
    
   <form action="" method="post">
    <select name = "formAccounts">
        <?php
            while ($rows = $resultSet ->fetch_assoc())
            {
            
                echo '<option value="'.$rows['account'].'"';            
                if($rows['account'] == $_POST['formAccounts']) echo ' selected="selected"';      
                echo '>'.$rows['account'].'</option>'; }

            }
                // Close connection
                mysqli_close($mysqli);
                
        ?>
    </select>

        <?php
          if(isset($_POST['submit'])){
            if(!empty($_POST['formAccounts'])) {
              $selectedAccount = $_POST['formAccounts'];

然后代码继续网络报告...

【问题讨论】:

  • 这就是if($rows['account']= $_POST['formAccounts']) echo 'selected="selected"'; 应该做的。
  • 为什么设置$account_id却不使用?
  • 这是我忘记的旧行...我已经更新了上面的代码,但仍然是同样的错误。

标签: php html forms


【解决方案1】:
if($rows['account'] == $_POST['formAccounts']) echo ' selected="selected"';

//我认为您在第一个选择之前缺少一个“=”和一个空格。

【讨论】:

  • 我已经进行了上述更新,但我仍然遇到同样的错误......
  • 如果您对我可能遗漏的内容有进一步的想法,请告诉我
【解决方案2】:

错行:

            echo '<option value="'.$rows['account'].'"';            
            if($rows['account'] == $_POST['formAccounts']) echo ' selected="selected"';      
            echo '>'.$rows['account'].'</option>'; }

正确的行:

   echo '<option value="'.$rows['account'].'"';            
   if($rows['account'] == $_POST['formAccounts'])
     echo ' selected="selected"';      
   echo '>'.$rows['account'].'</option>'; 

你没有在 if 语句之后开始 "{" 而是结束 this 。 所以,语法错误。 你需要删除这个更接近的“}”。

也应该是

$mysqli = new mysqli($host, $user, $pass, $name);

不应该

$mysqli = NEW MySQLi($host, $user, $pass, $name);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    相关资源
    最近更新 更多