早上好,伙计们。
我在这里有一个问题。
我有三个选择。带来第一个产品,数量带来第二,第三带来价值。 这些是更多选择muntiplos作为阵列;
Ex:
$quantity = "1,2,3";
$value = "20.00,30.00,20.00";
Foreach必须这样做。
qty value
$S ="1 * 20.00";
$S ="2 * 30.00";
$S ="1 * 20.00";
我发送的页面有两个进行计算。 更多的是不要用数据值和数量来做两次预测。
任何人都知道如何总结这个Vazer?
我将非常感激。
EX:
<select class="product" name=product[]" id="product[]">
<option value="1"> Plan 1 </ option>
<option value="2"> Plan 2 </ option>
</ select>
<select class="quantity" name=quantity[]" id="quantity[]">
<option value="1"> 1 </ option>
<option value="2"> 2 </ option>
</ select>
<select class="value" name=value[]" id="value[]">
<option value="1"> 20:00 </ option>
<option value="2"> 30.00 </ option>
</ select>
Post
$quantity = $_POST["quantity"];
$value = $_POST["value"];
$quantity = explode(',', $quantity_e);
$value = explode(',', $value_e);
foreach ($quantity as $q && $value as $v) { // ???
$v = $v * $q; // ????
}
答案 0 :(得分:1)
嗯,首先,您不会从您的选择中获得任何相关信息。您的3个输入数组将如下所示
Array
(
[name] => (
[0] => 1
[1] => 2
[2] => 1
)
[quantity] => (
[0] => 1
[1] => 1
[2] => 2
)
[value] => (
[0] => 2
[1] => 2
[2] => 2
)
)
你没有传递任何标记,只有1和2,因为所有选项的value
属性都只设置为1和2。
您可以同时删除value
属性,它会传递选项中的文字,或者您可以将value
设置为您想要传递的实际值。
一旦您将数据格式化为最初指定的格式,这样的事情就可以实现我认为的目标。
// make arrays from your comma delimited strings
$quantity_array = explod(',',$quantity);
$value_array = explode(',',$quanity);
// variable to store the total
$total = 0;
//iterate over them, summing them up
foreach ( $quantity_array as $i => $qty ) // $i is the index
{
$item_total = $qty * $value_array[$i]; // the index should be the same for the values
$total += $item_total;
}