2016-03-09 64 views
0

我有兩個表格 - 公司和客戶。他們每個都有一個相同的行,標記爲company_id,所以我可以爲每個客戶分配一個公司。MySQLI根據以前的選擇和表格顯示下拉選項

首先創建一個公司。

然後創建客戶端,並在此過程中將該公司與其關聯。

然後創建訂單...

對於訂單,我有一個名爲orders的表。在向表格中插入數據時,我有一個包含兩個下拉框的表單。第一個下拉列表是選擇訂單的公司。這是填充使用以下內容:

$getCompany = mysqli_query($db, "SELECT * FROM companies ORDER BY company_name ASC"); 

<label for="company_id">Company</label> 
<select class="form-control" name="company_id" id="company_id"> 
    <option disabled selected></option> 
    <?php 

     // If there are results, output each row. 
     if($getCompany) { 
      while($company = mysqli_fetch_assoc($getCompany)) { ?> 
       <option value="<?php echo $company['company_id']; ?>"> 
        <?php echo $company['company_name']; ?> 
       </option> 
      <?php } 
     } 
    ?> 
</select> 

第二個下拉是相同的,而是調用客戶端的名稱。

$getClient = mysqli_query($db, "SELECT * FROM clients ORDER BY client_fname ASC"); 

<select class="form-control" name="client_id" id="client_id"> 
    <option disabled selected></option> 
    <?php 

     // If there are results, output each row. 
     if($getClient) { 
      while($client = mysqli_fetch_assoc($getClient)) { ?> 
       <option value="<?php echo $client['client_id']; ?>"> 
        <?php echo $client['client_fname']." ".$client['client_lname']; ?> 
       </option> 
      <?php } 
     } 
    ?> 
</select> 

如果我從第一個下拉列表中選擇公司A,我怎麼能只顯示在第二個下拉式選單,選擇相關的客戶呢?

+0

從第一選擇使用這些數據,您將運行第二選擇和顯示查詢基於該查詢的客戶列表。 –

回答

0

使用Ajax這樣

的Javascript

$('.company_id').change(function() 
    { 
     var company_id = $('.company_id').val(); 
     var request = $.ajax({ 
       url: "your_ajax.php", 
       method: "POST", 
       data: { 
        company_id: company_id, 
        action: 'get_clients_by_company_id' 

       } 
      }); 
      request.done(function (msg) { 
       $('#client_id').val(msg); 
      }); 

    }); 

PHP代碼插入到AJAX

<?php 
if (isset($_POST['action']) and $_POST['action'] == 'get_clients_by_company_id') { 
    $company_id = $_POST['company_id']; 
    if (!empty($company_id)) { 
     $getClient = mysqli_query($db, "SELECT * FROM clients WHERE company_id = '$company_id' ORDER BY client_fname ASC"); 
     while ($client = mysqli_fetch_assoc($getClient)) { 
      ?> 
      <option value="<?=$client['client_id']; ?>"> 
       <?=$client['client_fname'] . " " . $client['client_lname']; ?> 
      </option> 

      <?php 
     } 
    } 
} 
?> 
+1

爲什麼OP應該這樣做?一個好的答案***將總是解釋所做的事情以及爲什麼這樣做,不僅是爲了OP,還是爲了將來訪問SO。 –

相關問題