1

チェックボックスがチェックされるたびに、データベースに示されている価格が合計料金に追加され、結果が表示されるモジュールを作成しようとしています。データベース (sql) から値を取得し、php コードを挿入して、選択したボックスの結果を表示するにはどうすればよいですか?

<script>
function updateTextArea() { 
    var allVals = [];
    $('#c_b :checked').each(function() {
        allVals.push($(this).val());
    });
    $('#t').val(allVals)
}
$(function() {
    $('#c_b input').click(updateTextArea);
    updateTextArea();
});

index.php

$queryPaymentLab = "select * from requestedlab where patient_ID='6' AND paid='0'";
$resultPaymentLab = mysql_query($queryPaymentLab);
$countRowsPaymentLab=mysql_num_rows($resultPaymentLab);

if($countRowsPaymentLab > 0){
while($fetchLab=mysql_fetch_array($resultPaymentLab)){
    $labservice_ID=$fetchLab['labservice_ID'];

    $queryPrice = "select * from labservices where labservice_ID='".$labservice_ID."'";
    $resultPrice = mysql_query($queryPrice);
    $fetchPrice=mysql_fetch_array($resultPrice);

    $labService=$fetchPrice['labService'];
    $labPrice=$fetchPrice['labPrice'];
    $totalLab+=$labPrice;
    $totalHBill+=$labPrice;

    echo "<tr><td><input type='checkbox' name='labservice_ID' value='$labservice_ID'/></td>
    <td>Laboratory</td><td>$labService</td><td>$totalHBill</td></tr>";
}
}

合計料金を表示するには..

 $queryPrice = "select * from labservices where labservice_ID='".$labservice_ID."'";
    $resultPrice = mysql_query($queryPrice);

    while($fetchPrice=mysql_fetch_array($resultPrice)){   
        $labPrice=$fetchPrice['labPrice'];
        $total+=$labPrice;
    }

    echo "<strong>Total:</strong>
    <strong>$total</strong>";
4

1 に答える 1

0

dataHTML5属性の使用を検討してみませんか?

HTML:

<?php 
// Use PHP to dynamically fetch the data-price values and generate the HTML below
?>
<span class="item" data-price="100">...</span>
<span class="item" data-price="90">...</span>
<span class="item" data-price="130">...</span>

USD: <span class="price">0</span>

JS:

function updateCost() {
    $('.item').each(
        function() {
            if ($(this).children('input:checkbox').is(':checked')) {
                var oldPrice = parseInt($('.price').text());
                var newPrice = oldPrice + parseInt($(this).data('price'));
                $('.price').text(newPrice);
            }
        }
    );
 }
  • チェックボックスごとupdateCost()にイベントを呼び出すonchange
  • チェックボックスの選択を解除すると、合計価格から適切に価格が差し引かれることを確認してください!
  • 送信時に合計金額と価格を確認することを忘れないでください。

このようにして、不要な Ajax を回避し、コードをよりクリーンに保つことができます。これがあなたが望んでいたものではない場合は申し訳ありませんが、私に知らせてください。

コスト自体がリアルタイムで更新されるある種の市場がある場合、これには外部の助けが必要になります。data-price市場の場合は、各アイテムの属性を適切に更新する Ajax 関数を呼び出すだけです! :)

于 2012-09-18T17:15:48.520 に答える