MySQL&表单:根据首选(从同一行)填充第二个选择选项

时间:2012-06-12 06:11:33

标签: php mysql database forms

我的问题是,我为每种产品提供三种不同的库存尺寸,每种尺寸都包含不同数量的库存(大盒子,中型盒子,小盒子)。每个产品都有相同的盒子大小,但每盒的数量会发生变化。选择产品名称后,我想选择框大小,并且应该对应于数据库中的产品行设置数量值。

------------------------------------------
|product      |small  |medium   |large   |
------------------------------------------
|Widget one   |100    |275     |400      |
------------------------------------------
|Widget two   |45     |100     |150      |
------------------------------------------
|Widget three |125    |150     |250      |

我已经使用php从db

获取select选项产品名称
    $product_select = mysql_query("SELECT * FROM products");

    echo '<select name="Product" id="product">'; 
    while ($row_item = mysql_fetch_array($product_select)){ 
    $pname = $row_item["product"]; 
    echo '<option value="' . htmlspecialchars($pname) . '">' . htmlspecialchars($pname)    . '</option>';

然后我需要这样的东西,根据上面选择的产品得到小中型和大型的行值:

<select><option value=" ">Small</option><option value=" ">Medium</option><option value=" ">Large</option></select>

修改

我一直试图弄明白这一整夜。这甚至可能吗?我应该尝试去另一条路吗?

1 个答案:

答案 0 :(得分:0)

您有3种方法可以实现此目的:

  1. 在一个选择标记内使用Optgroup标记。
  2. 在第一个选择中选择产品后,使用Ajax获取尺寸并选择第二个选择。
  3. 在第一个选择内存储库存的序列化值,并从该值中填充第二个选择。 例如:

         <select>
         <option values="100|275|400">Widget one</option>
         ...
         </select>