2016-02-24 1 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), то вы можете сравнить два.

Если они равны, echo из selected в качестве атрибута в 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>"; 
     } 
    } 
?> 
Смежные вопросы