2014-11-04 62 views
-1

如何總結文本框的值並顯示它。例如,文本框的值是1和2,另一個文本框將顯示3.請幫我解決問題。謝謝〜PHP總結文本框的值

$name = $row['Name']; 
    $data2 = mysql_query("SELECT * FROM tblstockmgt WHERE ItemName ='$name'") or die(mysql_error()); 
    while($row2= mysql_fetch_array($data2)) 
    { 
    echo "<td align='right'><input type='text' name='txt[]' value='".$row2['Price']."'/></td>"; 
    } 
+0

在哪些文字總計會顯示? – 2014-11-04 11:37:36

回答

2

只需創建一個varabile $total始終incrase它,並在循環後,寫入值到一個文本框:

$total = 0; 
while($row2= mysql_fetch_array($data2)) { 
    echo "<td align='right'><input type='text' name='txt[]' value='".$row2['Price']."'/></td>"; 
    $total += $row2['Price']; 
} 
?> 
</tr> 
<tr> 
    <td>Total: <input type="textbox" name="total" value="<?php echo $total; ?>" /></td> 
</tr> 
  • 避免SQL注入,讓我們逃避你查詢中的字符串。

  • 使用mysqli或PDO代替mysql函數,因爲mysql函數已被棄用。

+0

+1的警告和答案也。 – 2014-11-04 11:42:32

0
$total = 0; 
while($row2= mysql_fetch_array($data2)) 
{ 
    echo "<td align='right'><input type='text' name='txt[]' value='".$row2['Price']."'/> </td>"; 
    $total += $row2['Price']; 
} 
echo "<td align='right'><input type='text' name='txt[]' value='".$total."'/> </td>"; 
0

您可以使用jQuery或在循環的變量。 環PHP總結

$sum = 0; 
while($row2= mysql_fetch_array($data2)) 
     { 
     echo "<td align='right'><input type='text' name='txt[]' value='".$row2['Price']."'/></td>"; 
     $sum += $row2['Price']; 
} 
echo $sum; 

jQuery的版本

<div class="section"> 
     while($row2= mysql_fetch_array($data2)) 
      { 
      echo "<td align='right'><input type='text' name='txt[]' value='".$row2['Price']."'/></td>"; 
     } 
     <div id="mysum"></div> 
     </div> 

     <script> 
      $('.section').each(function(){ 
        var totalPoints = 0; 
        $(this).find('input').each(function(i,n){ 
        totalPoints += parseInt($(n).val(),10); 
        }); 
        alert(totalPoints); 
        $('#mysum').html(totalPoints); 
       }); 
     </script> 

PDO版本,請從棄用mysql_fetch等例子變換你的腳本

try { 
    $name= mysql_real_escape_string($row['Name']); 
    $db = new PDO('mysql:host=localhost;dbname=tablename', 'user', 'password'); 
    $stmt = $db->prepare('SELECT * FROM tblstockmgt WHERE ItemName:=this'); 
    $stmt->bindValue(':this', $name, PDO::PARAM_STR); 
    $stmt->execute(); 
    $results = $stmt->fetchAll(); 
    $sum = 0; 
    if ($stmt->rowCount() == 0) { 
     echo "No data"; 
     die(); 
    } 
    foreach ($results as $result) { 
     echo "<td align='right'><input type='text' name='txt[]' value='".$result['Price']."'/></td>"; 
     $sum += $result['Price']; 

    } 
     echo $sum; 
} 
catch (PDOException $ex) { 
    die($ex->getMessage()); 
} 
+0

爲什麼你用這個jQuery? – vaso123 2014-11-04 11:42:04

+0

我覺得使用更多的客戶端總結。這一切都取決於數據範圍,如果循環很短,您可以使用變量sum,idc。另一種選擇總是很好 – Kavvson 2014-11-04 11:43:01

0

使用這樣

$sum=0; 

while($row2= mysql_fetch_array($data2)) 
      { 
      $sum += $row2['Price']; 
      echo "<td align='right'><input type='text' name='txt[]' value='".$sum."'/></td>"; 

      }