简体   繁体   English

如何使用先前从数据库MySQLI提交的数据预先选择下拉选项

[英]How can I pre-select a dropdown option using previously submitted data from database, MySQLI

I have two tables: orders and companies . 我有两张桌子: 订单公司 Note that both tables has a company_id row. 请注意,两个表都有一个company_id行。

Orders Table : 订单表
order_id | order_name | company_id | .....

Companies Table : 公司表
company_id | company_name | .....

I have a page with a form that INSERTS data for an order into the orders table in my database. 我有一个页面,其中包含一个表单,用于将订单的INSERTS数据插入到我的数据库中的订单表中。 Part of the order is selecting a company from the companies table to go with it, so I use a dropdown for this. 部分订单是从公司表中选择一家公司,因此我使用下拉列表。

I also have another page with a form that UPDATES that data (an edit page). 我还有另一个页面,其中包含更新该数据的表单(编辑页面)。 When I click on the button to bring up the edit page, I'd like to have the previously submitted data in the input fields. 当我点击按钮调出编辑页面时,我想在输入字段中输入先前提交的数据。 With text fields, I just use value="<?php echo $company['whatever']; ?>" . 对于文本字段,我只使用value="<?php echo $company['whatever']; ?>" However, with dropdown menu's I can't figure out how to pre-select the correct option. 但是,使用下拉菜单我无法弄清楚如何预先选择正确的选项。

Here is my URL structure: 这是我的网址结构:

http://website.com/orders.php?page=edit&order_id=1

Here is what I have to create my dropdown menu: 这是我创建下拉菜单所需的内容:

$getOrder   = mysqli_query($db, "SELECT * FROM orders WHERE order_id = ".$_GET['order_id']);
$getCompany = mysqli_query($db, "SELECT * FROM companies ORDER BY company_name ASC");

....

<select class="form-control" name="company_id" id="company_id">
<?php
    if($getCompany) {
        while($company = mysqli_fetch_assoc($getCompany)) { ?>
            <option value="<?php echo $company['company_id']; ?>">
                <?php echo $company['company_name']; ?>
            </option>
        <?php }
    } 
?>

How can I get selected on the option that's been previously selected? 我该如何selected对一个已经预先选择的选项?

If $getOrder has the order details (including company_id ), and $getCompany has the company details (including company_id ), then you can compare the two. 如果$getOrder有订单详细信息(包括company_id ),而$getCompany有公司详细信息(包括company_id ),那么你可以比较两者。

If they are equal, echo out selected as an attribute in the option , like so: 如果它们相等,则selected echo out作为option的属性,如下所示:

<select class="form-control" name="company_id" id="company_id">
<?php
    if($getCompany) {

        //Get company ID from Order
        $orderID = $getOrder["company_id"];

        while($company = mysqli_fetch_assoc($getCompany)) { ?>
            <option value="<?php echo $company['company_id']; ?>"
            <?php 
                //Compare and echo `selected` if they are equal
                if($orderId==$company["company_id"]) echo "selected";
            ?>>
                <?php echo $company['company_name']; ?>
            </option>
        <?php }
    } 
?>

That code can be cleaned up, however: 但是,该代码可以清理:

<select class="form-control" name="company_id" id="company_id">
<?php
    if($getCompany) {
        $orderID = $getOrder["company_id"];
        while($company = mysqli_fetch_assoc($getCompany)) {
            echo "<option value='{$company['company_id']}".($getOrder["company_id"]==$getCompany["company_id"] ? " selected" : null).">{$company['company_name']}</option>";
        }
    } 
?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何基于存储在数据库中的值在选择菜单中预先选择一个选项? - How can I pre-select an option in a select menu based on a value stored in the database? 从mysql数据的下拉列表中预选择值 - pre-select value in dropdown list from mysql data 使用PHP Mysqli从下拉列表中选择多个选项时,如何显示数据库中的数据 - How to display data from database When Selecting Multiple option from Dropdown using PHP Mysqli 通过使用Ajax通过PHP从数据库中获取数据来进行预选择 - Pre-select option by fetching data from DB via PHP with ajax 从循环中预选 - pre-select from loop Laravel从数据库预选复选框字段的最佳方法 - Laravel best way to pre-select checkbox fields from database PHP - PRE-select下拉选项 - PHP - PRE-select drop down option 如何从我使用 select 选项的数据库中获取数据,以便它可以显示在输入框中 - How to get a data from database where i using select option so it can be shown in inputbox 从现有选项中预选择“选择”或“多重选择”选项,而不是添加和选择新选项 - Pre-select Select or Mult-Select options from the existing ones instead of adding and selecting a new option 我可以使用SUBSTR从mysqli数据库中选择数据来优化查询吗 - Can i select data from mysqli database using SUBSTR to refine the query
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM