2016-02-24 49 views
3

我有兩個表:訂單公司。請注意,兩個表都有一個company_id行。如何使用之前提交的數據庫中的數據預先選擇下拉選項,MySQLI

訂單表
order_id | order_name | company_id | .....

公司表
company_id | company_name | .....

我有,對於訂單到我的數據庫中的訂單表中插入數據的表單的頁面。部分訂單是從公司名單中選擇一家公司來使用它,所以我使用了一個下拉菜單。

我也有一個窗體,更新數據(編輯頁面)的另一頁。當我點擊按鈕來調出編輯頁面時,我希望在輸入字段中具有先前提交的數據。有了文本字段,我只使用value="<?php echo $company['whatever']; ?>"。但是,對於下拉菜單,我無法弄清楚如何預先選擇正確的選項。

這裏是我的URL結構:

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

這是我要創建我的下拉菜單:

$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 } 
    } 
?> 

我怎樣才能selected上對以前一直是選項選擇?

+0

你的問題是有點混亂?你究竟想要什麼?向我們展示預期結果? –

回答

2

如果$getOrder有訂單的詳細信息(包括company_id),並$getCompany有公司的詳細信息(包括company_id),那麼你可以比較兩個。

如果他們是平等的,echoselected作爲屬性在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 } 
    } 
?> 

該代碼可以然而清理,:

<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>"; 
     } 
    } 
?> 
相關問題