2012-11-26 74 views
1

我有2個選擇列表,一個命名產品和另一個數量。從數據庫中的值設置選擇列表

<select name="fish" id="fish"> 
    <option value="blueFish">Blue Fish</option> 
    <option value="redFish">Red Fish</option> 
    <option value="pinkFish">Pink Fish</option> 
    <option value="greenFish">Green Fish</option> 
</select> 

<select name="numFish" id="numFish"> 
    <option value="0">0</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
</select> 

我喜歡它,所以當選擇一個產品時,相應的數據庫數量也會相應設置。

所以,如果有一個記錄客戶比利買了5粉紅魚,當我選擇粉紅色的魚,數量選擇列表會更改爲5

這將是使用的是MySQL的PHP​​的形式使用數據庫。

這樣的功能是否可能,如果是的話,我該如何去做呢?

+0

這是不可能的。你需要使用Javascript。 –

回答

2

你可能想要谷歌的AJAX請求。它所做的是通過javascript檢測到一個變化(在你的情況下),將你選擇的值發送到另一個php腳本,它應該執行一個sql查詢來返回數量。 ajax請求會捕獲返回的值,並通過javascript再次從選擇下拉列表中更改值。

所有這些都會發生在後臺,您的網站不會刷新。

如果你不是非常習慣JavaScript,你可以看看jquery框架,這使得這個任務變得更容易一些,並且有大量的例子記錄。

我沒有粘貼任何代碼,因爲假設你不熟悉javascript/jquery/ajax。您可能需要閱讀一些文檔並進行一些操作,並在出現具體問題時回來,這將是Stackoverflow中的正常工作流程。

編輯: 使用Javascript(如提出要求OP一些代碼):

$('#fish').change(function(){ 
    var fishType = $('#fish select option:selected'); 
    $.ajax("getQuantity.php", {fish: fishType}, function(data){ 
     data = JSON.parse(data); 
     if(data.status == "OK"){ 
      var quantity = data.quantity; 
      $('#numFish option[value='+quantity+']').prop("selected", true); 
     } else { 
      alert("error");// or console.log(), whatever you prefer 
     } 
    } 
}); 

PHP(getQuantity.php):

<?php 
    $fish = $_POST['fish']; //getting the fish type 
    $sql = "your SQL to select the fish quantity for that type"; 
    $result = mysqli_query($mysqli, $sql); 

    if(mysqli_num_rows($result)>0){ 
     $row = mysqli_fetch_assoc($result); 
     $data = array("status" => "OK", "quantity" => $row['quantity']); // you can just output a string with the number if you want, but this way you have more control and better debugging. 
     echo json_encode($data); 
    } 
?> 

這是一個基本的代碼,它仍然需要捕捉一些數據庫錯誤或返回不同的狀態。但基本就是這樣。我甚至沒有測試過這個代碼,所以只用它作爲指導。

+0

我並不精通JavaScript,但我已經在我的網站上使用jQuery來實現其他功能,所以我們歡迎一個示例代碼片段。 –

+0

在我的回答中增加了一個小例子 – aleation

+0

請幫助我:同一問題:http://stackoverflow.com/questions/26916065/break-the-quantity-number-in-a-record-and-set-them-作爲陣列換選項-selecti – klaudia

0

變化<select name="fish" id="fish"><select name="fish" id="fish" onchange="getQuantity(this.value);">

聲明在JavaScript以下功能:

function getQuantity(o) { 
    // get the quantity from the database using ajax, 
    // and set the quantity dropdown here. 
} 
相關問題