2017-09-27 1 views
0

合計金額の値を取得するのに役立ちます。 1カラムにdbからの金額が表示されます(私はループしています)、それを入力タグ((コピーの数なし)で掛けます。これはwhileループの内側にあります)、それらを乗算して合計量を求めます。 whileループ中にPHPで入力タグの値を渡す方法は?あなたが名前またはフォーム内のフィールドの、DBに私たちの列の名前を与えられていないwhileループ内にある入力タイプタグの値をPHP内に入れます

enter image description here

<?php  
    $result = mysqli_query($link,"SELECT * FROM account_db"); 
    $row = mysqli_fetch_row($result); 
    echo"<html>"; 
    echo"<center>"; 
    echo "<form method='POST'>"; 
    echo "<table style='border:1px solid black' name='pleasework'>"; 
    echo"<th>FILES</th>"; 
    echo"<th>AMOUNT</th>"; 
    echo"<th>NO. OF COPIES</th>"; 
    echo"<th>TOTAL AMOUNT</th>"; 

    $answer = $row[2] * noofcopies; 

    while($row) 
    { 
     echo"<tr>"; 
     echo "<td id='transfile'>$row[1] </td>"; 
     echo "<td align=center>$row[2] </td>"; 
     echo "<td align=center><input type='number' name='noofcopies' onkeyup> </td>"; 
     echo "<td align=center value=''>$answer</td>"; 
     echo"</tr>"; 
    }     

    echo "</table>"; 
    echo " <input type='submit' value='Transact' name='transaction'>"; 
    echo"</center>"; 
    echo"</html>";  
?> 
+0

だから、乗算したい。あなたは '*'で何を試しましたか?私は '$ int1 * $ int2'です。 –

+0

私の入力タグはPHPの中にあり、whileループの中ではどのように値を渡しますか? –

答えて

1

あなたが必要とするのは、ユーザーがコピー数(onkeyupイベント)を入力した後に、いくつかのJavaScriptを使用して合計量を更新することです。

<?php  
    $result = mysqli_query($link,"SELECT * FROM account_db"); 
    $row = mysqli_fetch_row($result); 
    echo"<html>"; 
    echo "<script>"; 
    echo "function calculate(amount, id){ document.getElementById('total' + id).innerHTML = parseInt(document.getElementById('copy' + id).value) * amount; }"; 
    echo "</script>"; 
    echo"<center>"; 
    echo "<form method='POST'>"; 
    echo "<table style='border:1px solid black' name='pleasework'>"; 
    echo"<th>FILES</th>"; 
    echo"<th>AMOUNT</th>"; 
    echo"<th>NO. OF COPIES</th>"; 
    echo"<th>TOTAL AMOUNT</th>"; 

    $counter = 0; 
    while($row) 
    { 
     echo"<tr>"; 
     echo "<td id='transfile'>$row[1] </td>"; 
     echo "<td align=center>$row[2] </td>"; 
     echo "<td align=center><input type='number' id='copy" . $counter . "' name='noofcopies' onkeyup='calculate(" . $row[2] . ", " . $counter . ")'> </td>"; 
     echo "<td align=center value='' id='total" . $counter . "'></td>"; 
     echo"</tr>"; 
     $counter++; 
    }     

    echo "</table>"; 
    echo " <input type='submit' value='Transact' name='transaction'>"; 
    echo"</center>"; 
    echo"</html>";  
?> 

アイデアはjavascriptを経由してアクセスするためのinputtdのIDを設定することが最初です。
次に、合計を計算する関数を作成します。
次に、document.getElementById関数を使用して値を取得および設定します。 さらに読むHERE

このヘルプが必要です。

+0

それはうまくいけばそれは最初の行を繰り返し表示し、これをデバッグする方法はありませんか? ty –

+0

それはうまくいった!ありがとう!私は$ row = mysqli_fetch_row($ result)を移動しました。 (/ * here * /){...}ではデカールされた変数のみを入れています! Vikiさん、ありがとう! –

+0

合計金額列の全体的な合計金額を取得するにはどうすればよいですか? –

0

:ここ

はイメージです。以下のような 何か:あなたは実際の値にmy_input_fieldとmy_colを交換

$inputVal=$_REQUEST['my_input_field']; 
$sql = sprintf("SELECT SUM(my_col)*%d FROM account_db", $inputVal); 

が動作するはずです。

+0

はい、$ row [1]と$ row [2]はそれらを表示しません...私は自分のコードの画像を入れます –

関連する問題