从ajax中的列表/菜单计数值

时间:2009-07-28 07:28:51

标签: php jquery ajax

如何使用ajax或php

计算两个下拉列表的值

示例表格

基本价格:$ 10颜色[下拉]尺寸[下拉]

Base Price : $10 
<select name="color">
        <option>Blue</option>
        <option>White</option>
</select>

<select name="size">
        <option>8</option>
        <option>10</option>
</select>

计算

example I change color to blue = $10 
Price : $10 + $10 = $20

example I change Size to 8 = $5
Price : $10 + $5 = $15

从哪里开始&amp;我有什么好的资料来详细查看吗? :)

3 个答案:

答案 0 :(得分:1)

您需要的只是一个针对onchange事件触发的JavaScript函数:

<script lang="javascript">
function calcPrice (size, color) {
    var newprice = 0;
    // do the math depending on size and color
    document.getElementById('price').innerHTML = newprice;
}
</script>

Base Price: $<div id="price">10<div>

<select id="color" name="color" onchange="calcPrice (document.getElementById('size').value, this.value);">
    <option>Blue</option>
    <option>White</option>
</select>

<select id="size" name="size" onchange="calcPrice (this.value, document.getElementById('color').value);">
    <option>8</option>
    <option>10</option>
</select>

基本价格值将根据用户的选择动态变化。

答案 1 :(得分:1)

您应该在选择选项上添加值。

理想情况下,分配给每个项目的这些值将与数据库中的ID匹配,然后您可以在下一页上从数据库中检索价格。您无法在价值中加价,因为多件事可能是相同的价格。

<select name="color">
        <option value="1">Blue</option>
        <option value="2">White</option>
</select>

<select name="size">
        <option value="1">8</option>
        <option value="2">10</option>
</select>

然后,当在下一页提交表单时,您将获得这些ID并使用这些ID查询数据库的总价格。

$size_id = $_POST['size'];
$color_id = $_POST['color'];

在生成页面时,您还可以将价格与ID一起放入,这样它仍然可以使用javascript进行解析,以便在进行选择时更新页面上的商品价格。

<select name="color">
        <option value="1-10">Blue</option>
        <option value="2-15">White</option>
</select>

<select name="size">
        <option value="1-5">8</option>
        <option value="2-6">10</option>
</select>

然后你可以在javascript中用' - '分割,第二个条目就是价格。

提交表单时,您可以再次在php中按“ - ”拆分,第一个条目将是数据库中的选项ID,这样您就可以知道他们在产品中选择了哪些选项。

这是一个简单的解释,但我希望它对你有所帮助。

答案 2 :(得分:0)

var total = 0;

$("#my-select option").each(function(){ 
    total += $(this).val();
});

这样的事情对你来说可能很有趣。我实际上并不知道,你想把两个选择加在一起还是一个一个?好吧,基本思路是一样的,只需循环遍历所有选项字段并总结它们的值:)