鍍金池/ 問答/PHP  C  HTML/ js代碼只能接受收到數(shù)據(jù)庫遍歷的第一條數(shù)據(jù)里面的數(shù)據(jù)。

js代碼只能接受收到數(shù)據(jù)庫遍歷的第一條數(shù)據(jù)里面的數(shù)據(jù)。

想實現(xiàn)改物品數(shù)量物品總價也跟著改動,由于不懂JS左查右查勉強實現(xiàn)了效果。但是購物車有兩條數(shù)據(jù)的時候只有第一條有效。
這是下面是代碼:

<volist name='list1' id='vo'>
                    <tr>
                        <td><img height=80px width=150px src="__PUBLIC__/goods/{$vo.img_address}" alt="13"></td>
                        <td>{$vo.goods_name}</td>
                        <td>{$vo.goods_describe}</td>
                        <td class='goodsprice'><strong>{$vo.goods_price}</strong></td>
                        <td><input  type="number" id="myNumber" name="quantity" min="1" max="500" value='{$vo.goods_count}' onclick="myFunction()"></td>
                        <td><strong id="allprice">{$vo.order_price}</strong></td>
                        <td><span class="red"><i class="fa fa-times" aria-hidden="true"></i></span></td>
                    </tr> 
                    </volist>

這是js代碼

<script>
function myFunction() {
    var x = document.getElementById("myNumber").value;    
    var text=document.querySelector(".goodsprice strong").innerHTML;
    var allprice=text*x+10
    document.getElementById("allprice").innerHTML = allprice;
    
}
</script>

求大神教怎么改,另為js取到這些值怎么傳到控制器方法里面去

回答
編輯回答
歆久

數(shù)據(jù)傳到后臺控制器,首先你要寫ajax請求或提交form表單。前端想循環(huán)出后臺返回數(shù)據(jù),你要先控制臺輸出下返回數(shù)據(jù)是一條還是多條,然后each循環(huán)即可。

2018年3月3日 12:45
編輯回答
憶當年
<volist name='list1' id='vo'>
                    <tr id="row_{$vo.index}">
                        <td><img height=80px width=150px src="__PUBLIC__/goods/{$vo.img_address}" alt="13"></td>
                        <td>{$vo.goods_name}</td>
                        <td>{$vo.goods_describe}</td>
                        <td class='goodsprice'><strong>{$vo.goods_price}</strong></td>
                        <td><input  type="number" class="myNumber" name="quantity" min="1" max="500" value='{$vo.goods_count}' onclick='myFunction("#row_{$vo.index}")'></td>
                        <td><strong id="allprice">{$vo.order_price}</strong></td>
                        <td><span class="red"><i class="fa fa-times" aria-hidden="true"></i></span></td>
                    </tr> 
                    </volist>
<script>

function myFunction(rowIdSelector) {
    var trRowDOM=document.getElementById(rowIdSelector);
    var number = pareInt(trRowDOM.querySelector(".myNumber").value,10)||0;    
    var price= parseFloat(trRowDOM.querySelector(".goodsprice strong").innerText)||0.0;
    var allprice=number*price+10;
    document.getElementById("allprice").innerHTML = allprice.toFixed(2);
    
}
</script>
2017年11月23日 00:39