Jump to content

help on the select box calcualtion


wangtian

Recommended Posts

any one can help me on this code? the problem on this code is that it only give me the result of the last mutification (chassis.value * Quantity1.value). I want to get the result of motherboard.value * Quantity + Chassis.value * quantity1. anyone know how to fix this problem. I appreciate it.

 

 

function calculate(){
document.calcform.total.value = parseFloat(document.calcform.Motherboard.value || 0) * parseFloat(document.calcform.Quantity.value || 0)
+ parseFloat(document.calcform.Chassis.value || 0) * parseFloat(document.calcform.Quantity1.value || 0) } 

 

 

 

 

 

here are the code on my page.

 

<style type = "text/css">

.SelectClass { 
  font-size: 15px; 
} 

table {

font-size: .9em;
border: 3px groove;
padding: 0px;
background-color: #dddddd;
}

.mycss
{
font-weight:normal;font-style:italic;color:#000000;letter-spacing:1pt;word-spacing:2pt;font-size:36px;text-align:left;font-family:courier new, courier, monospace;line-height:1;
}


</style>





<script LANGUAGE="JavaScript">

function dp(price)
{
string = "" + price;
number = string.length - string.indexOf('.');
if (string.indexOf('.') == -1)
return string + '.00';
if (number == 1)
return string + '00';
if (number == 2)
return string + '0';
if (number > 3)
return string.substring(0,string.length-number+3);
return string;
}

function calculate(){
document.calcform.total.value =dp(parseFloat(document.calcform.Motherboard.value|| 1)* parseFloat(document.calcform.Quantity.value || 1)+parseFloat(document.calcform.Chassis.value|| 0)* parseFloat(document.calcform.Quantity1.value || 0)) } 
</script>


</head>

<body onload="calculate">
<div class="mycss"><center>Order List</center></div><br />

<center>
<form name="calcform"  method="post" action="test2.php">

<table border="0"  width="800">

<tr>
<td align="right" colspan="2">

<font size="6">$</font><input name="total" style="border:0px solid #000000; background-color:#E6FBF4; font-size: 25.5px;"  type="text" value="0.00" ONCHANGE="calculate()"/> 

</td></tr>


<tr>
<td><font size="+1">
Product Name</font>
</td>

<td><font size="+1">Quantity</font></td></tr>
<td colspan="2">
<?php
mysql_connect("mysql1.000webhost.com", "a4202648_wang", "wang2011") or die(mysql_error());

mysql_select_db("a4202648_wang") or die(mysql_error());

echo "<table  width='100%'>";


echo "<tr><td align='left' width='90%'>";

$result = mysql_query("SELECT Motherboard_Part_Number, Motherboard_Name, Motherboard_Price FROM Motherboard ") 
or die(mysql_error());  
echo '<select id="Motherboard" class="SelectClass" name="Motherboard" ONCHANGE="calculate()">'; 
// keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result )) {
// Print out the contents of each row into a table
echo '<option Name="Motherboard" value= ',$row['Motherboard_Price'],'>',$row['Motherboard_Part_Number'],'   ',$row['Motherboard_Name'],'    $',$row['Motherboard_Price'],' ','</option>'; 

} 

echo '</select>';

echo "</td>";


echo "<td align='right' width='10%'>";

$result= mysql_query("SELECT Number FROM Quantity") 
or die(mysql_error());  
echo '<select id="Quantity" class="SelectClass" name="Quantity" Value="Quantity" ONCHANGE="calculate()" >'; 

// keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result)) {
// Print out the contents of each row into a table

echo '<option value=',$row['Number'],'>',$row['Number'],'</option>'; 
} 




echo '</select>';

echo "</td></tr>";











echo "<tr><td align='left' width='90%'>";

$result = mysql_query("SELECT Chassis_Part_Number, Chassis_Name, Chassis_Price FROM Chassis where Chassis_Form_Factor='ATX'") 
or die(mysql_error());  
echo '<select id="Chassis" class="SelectClass" name="Chassis" ONCHANGE="calculate()">'; 
// keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result )) {
// Print out the contents of each row into a table
echo '<option Name="Chassis" value= ',$row['Chassis_Price'],'>',$row['Chassis_Part_Number'],'   ',$row['Chassis_Name'],'    $',$row['Chassis_Price'],' ','</option>'; 

} 

echo '</select>';

echo "</td>";


echo "<td align='right' width='10%'>";

$result= mysql_query("SELECT Number FROM Quantity") 
or die(mysql_error());  
echo '<select id="Quantity" class="SelectClass" name="Quantity1" Value="Quantity" ONCHANGE="calculate()" >'; 

// keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result)) {
// Print out the contents of each row into a table

echo '<option value=',$row['Number'],'>',$row['Number'],'</option>'; 
} 




echo '</select>';

echo "</td></tr>";









echo "</table>";
?>
</td>
</tr>
<tr><td colspan="2"><input type="submit" /></td></tr>
</table>

</form>
</center>

</body>
</html>

 

 

 

 

[attachment deleted by admin]

Link to comment
https://forums.phpfreaks.com/topic/232919-help-on-the-select-box-calcualtion/
Share on other sites

Although you haven't actually said what the problem is, I imagine it's down to the order of operations. You need to use parentheses ()  to group the calculations, so that you first work out (Motherboard * Quantity), then (Chassis * Quantity), and then add the two. To make things a little more readable you can also store document.calcForm as a variable...

 

function calculate() {
    var calcForm = document.calcForm;
    calcForm.total.value =
          (parseFloat(calcForm.Motherboard.value || 0) * parseFloat(calcForm.Quantity.value || 0))
        + (parseFloat(calcForm.Chassis.value || 0) * parseFloat(calcForm.Quantity1.value || 0))
}

 

Notice the additional brackets.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.