2012-11-26 40 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. 
} 
相关问题