根据使用 php 和 jquery 的下拉选择更改价格变量

Posted

技术标签:

【中文标题】根据使用 php 和 jquery 的下拉选择更改价格变量【英文标题】:Change price variable based on a dropdown selection with php and jquery 【发布时间】:2015-03-24 21:23:12 【问题描述】:

问题:如何从下拉菜单中获取所选价格并使用它来代替存储在数据库中的当前产品的原始价格?

我的方法:我已经能够使用所选价格更新标签,但我仍然需要覆盖产品的当前价格。我现在一头雾水。

附加信息:保存在数据库中的当前价格是 $price,需要被 $prijshalf$prijsheel 覆盖strong> 都存储在数据库中。

更新标签的jQuery代码:

<script type="text/javascript">
      $(document).ready(function() 
            $('.dropdown').change(function() 
                var price = 0;
                $('.dropdown').each(function() 
                    if($(this).val() != 0) 
                        price = parseFloat($(this).val());
                    
                );
                $('#costLabel').text('€ ' + price.toFixed(2));
            );
        );
</script>

此代码块获取所选下拉菜单项的值并将其放入标签#costLabel

用于渲染产品的 PHP 代码:

$product_list = "";

while($row = mysql_fetch_array($results)) 
         $id = $row["id"];
         $product_name = substr($row["product_name"],0,25);
         $price = $row["price"];
         $category = $row["category"];
         $subcategory = $row["subcategory"];
         $beschrijving = substr($row["details"],0,25);
         $afbeelding = '<img src="inventory_images/' . $id . '.jpg"    />';
         $dropdown = $row["dropdown"];
         $dropdown2 = $row["dropdown2"];
         $prijshalf = $row["prijshalf"];
         $prijsheel = $row["prijsheel"];
         if($dropdown != "" || $dropdown2 != "")
         $dropdownshow = "<select name='dropdown' id='dropdown' class='dropdown'>
                                      <option name='prijshalf' value='$prijshalf'>$dropdown</option>
                                      <option name='prijsheel' value='$prijsheel'>$dropdown2</option>
                         </select>";
             
         else
                $dropdownshow = ""; 
         
         $product_list .= "<div class='produkt'>
                           <div class='hardlopers'>
                           $afbeelding
                           <div class='subinfo'>
                           <span class='prijs-info'>Prijs:</span><span class='prijs'><label id='costLabel' name='costLabel'>$price</label>  </span>
                           <span class='productnaam'>$product_name</span>
                           <span class='dropdown'> 
                            $dropdownshow
                           </span>    
                           <form id='form1' name='form1' method='post' action='homepage.php#redirect'>
                           <input type='hidden' name='pid' id='pid' value='$id' />
                           <input type='submit' name='button' id='button' value='' />
                           </form>
                           <span class='info'></span>
                           </div>
                           </div>
                           </div>
                           ";   



// Prints out the products to screen
echo $product_list;

【问题讨论】:

那么您是在问如何进行 AJAX 调用来更新数据库中的值?你需要在这里更精确。 @Jonast92 该值不必更新。我想要实现的是,在下拉选择中,它使用数据库中的 $prijshalf 或 $prijsheel,而不是基于下拉选择的 $price 值。 @LarsMertens,您要做的是在下拉选择中将$price$prijshalf$prijsheel 交换,但只是在html 中,而不是在数据库中?因为我不清楚。 @Kstro21 $price 应该始终保持不变,但在某些情况下,人们也可以选择只购买为此设定价格的商品的一半。在这种情况下是 $prijshalf ,它也存储在我的数据库中,并且该商品也具有一定的价格,现在,当您将商品添加到购物车时,它会保持正常价格,但在下拉菜单。 @LarsMertens,你几乎明白了,只需要决定如何。我看不到您将商品添加到购物车的过程如何,所以我无法告诉您如何操作。但是您可以尝试将下拉列表放在 &lt;form&gt; 标记中,稍后使用 php 获取值,如果它是 prijshalfprijsheel 进行数学运算。与js 相同,将下拉列表的选定值放在hidden 输入中的&lt;form&gt; 中,将其发送到服务器并在那里进行数学运算。一切都取决于你。这是你想要达到的目标吗? 【参考方案1】:

我看不到您将商品添加到购物车的过程如何,所以我无法告诉您如何操作。但是您可以尝试将下拉列表移动到 &lt;form&gt; 标记中,稍后使用 php 获取值,如果它是 prijshalfprijsheel 进行数学运算。与js 相同,如果您不希望下拉列表进入&lt;form&gt;,请将下拉列表的选定值放入&lt;form&gt; 内的隐藏输入中,但我不明白为什么不应该这样做,发送它到服务器并在那里做数学。一切由你决定。

始终使用js 来显示信息,出于安全原因,始终在服务器中使用php 进行计算和验证。

快乐编码

【讨论】:

以上是关于根据使用 php 和 jquery 的下拉选择更改价格变量的主要内容,如果未能解决你的问题,请参考以下文章

如何根据使用 jQuery/AJAX 和 PHP/MySQL 选择的第一个下拉列表填充第二个下拉列表?

如何使用 jquery json 和 php 更改多个下拉列表

如何根据下拉选择更改 jquery ui 自动完成源

如何根据用户选择的下拉菜单更改 PHP 中的 SQL 查询

JQuery - 如何根据值选择下拉项

jQuery+PHP+MySQL实现二级联动下拉菜单