【发布时间】:2014-06-26 13:46:19
【问题描述】:
我有以下(简化的)php 函数,它为我计算总值。它基本上从 wordpress 数据库中获取一组项目并检查每个项目的类型,然后将其值与特定的给定值进行比较,并将所有比较相加。
function total(){
$value1 = 10; // compare value for type 1 items
$value1 = 20; // type 2 items
$value1 = 30; // type 3 items
$total = 0; // reset total variable
global $wpdb;
$items = $wpdb->get_results("SELECT `item_type` as type, `item_value` as value FROM `table`"); // get all the items from database
foreach ($items as $item) {
// check which item type
switch ($item->type) {
case 1:
$total = $total + min($value1, $item->value);
break;
case 2:
$total = $total + min($value2, $item->value);
break;
case 3:
$total = $total + min($value3, $item->value);
break;
}}
return $total;
}
现在我想在 javascript 中重新制作相同的函数,以便我可以在表单中使用它进行计算。这是我目前得到的;
<SCRIPT type="text/javascript">
function calculate_total (){
var items = <?php echo json_encode($items); ?>;
var value1 = document.form.range1Input.value;
var value2 = document.form.range2Input.value;
var value3 = document.form.range3Input.value;
for each (var item in items){
switch (**(refer to item type in array)**) {
case 1:
total = total + min(value1, **(refer to item value in array)**);
break;
case 2:
total = total + min(value2, **(refer to item value in array)**);
break;
case 3:
total = total + min(value3, **(refer to item value in array)**);
break;
}}
document.form.total.value = total;
}
</script>
如何引用 items 数组中的值?我希望有人能给我一些建议。
我还看到echo json_encode($items) 将数组格式化为{"type":"3","value":"1.00"},{"type":"1","value":"20.50"} 等,我想知道这是否是javascript 的可用格式,因为当我尝试total = items[1]; 时,我在表单中看到[Object Object]。
$items = $pdb->get_results() 被格式化为Array ( [0] => stdClass Object ( [type] => 1 [value] => 35.00 ) [1] => stdClass Object ( [type] => 3 [value] => 1.00 )
【问题讨论】:
-
在 javascript 端是什么样子的?第一个循环的项目是什么?
-
您好约翰,感谢您的评论。我不确定你是什么意思?我几乎没有使用 javascript 的经验
-
我的意思是当你将它从 php 发送到 javascript 时,数据是什么样的?
items包含什么.. 是 json 吗?数组?你也能把它放上去吗?谢谢:) -
试试
total = items[1].value而不是total = items[1]; -
print_r(items$) = Array ( [0] => stdClass Object ( [type] => 1 [value] => 35.00 ) [1] => stdClass Object ( [type] => 3 [value] => 1.00 ) [2] => stdClass Object ( [type] => 1 [value] => 20.50 ) 等等
标签: javascript mysql arrays foreach json