0

私はちょうどjavascriptを学んでいるので、皆さんが私を助けてくれることを願っています.

ここに私のコードがあります

以下のコードは、私のデータベースから成分名を表示するためのものです

<?php
$q = pg_query("Select * FROM tblingredients");
while($r = pg_fetch_assoc($q)) {
     echo '
     <li>
     <a href="#" onclick="showOrder(\''.$r_ing['ingredientid'].'\', '.$r_ing['ingprice'].'); return     false;">'.$r_ing['ingredientname'].'</a><br>             
    </li>';
    } 
?>

そして、上で選択した成分名の名前と価格を表示するためのこの別のコードがあります。ユーザーが上の成分名をクリックすると、以下のコードは選択された成分の名前と価格を表示します。

<?php 
$q_order = pg_query("Select * FROM tblingredients");
    while($r_order = pg_fetch_assoc($q_order)) {
    ?>
<div id="<?php echo $r_order['ingredientid'];?>" style="display: none;" class="cart_item">
<div class="item_amount">1x</div>
    <div class="item_name">
        <a href=""><?php echo $r_order['ingredientname']; ?></a> </div>
        <a title="Remove item" rel="tooltip" onclick="deleteItem(<?php echo $r_order['ingredientid'];?>)"    class="close" href="">×</a>
    <div class="item_cart_price"><?php echo $r_order['ingredientprice']; ?></div>
</div><!--cart_item-->
<?php $i++;} ?>

そして、以下は、選択した食材の合計価格を表示したい場所です。

<div id="total"></div>

ここに私のJavaScriptコードがあり、これが私の問題です

<script type="text/javascript">
function showOrder(id, price) {
    document.getElementById(id).style.display = 'block';
    total = parseInt(price, 10);
    document.getElementById('total').innerHTML += total;
};
</script>

上記の JavaScript は価格を連結するだけで、価格を追加しません。ユーザーが価格 5 の成分 A、価格 10 の成分 B、価格 20 の成分 C をクリックしたとします。

合計は次のように表示されます -> 51020

私はちょうどjavascriptを学んでいて、それを自分のphpコードに適用しようとしています. ご回答ありがとうございます。

また、ユーザーが上記のコードを使用して X をクリックした場合、選択した成分を削除したいと思います

<a title="Remove item" rel="tooltip" onclick="deleteItem(<?php echo $r_order['ingredientid'];?>)" class="close" href="">×</a>

ありがとうございました。

4

1 に答える 1

0

このようなものを試してみてください...

function showOrder(id, price) {
    document.getElementById(id).style.display = 'block';
    price = parseInt(price, 10);
    oldTotal = parseInt(document.getElementById('total').innerHTML);
    if (isNaN(oldTotal)) {oldTotal = 0;}
    total = price + oldTotal;
    document.getElementById('total').innerHTML = total;
};
于 2013-03-28T19:14:53.447 に答える