tags:

views:

52

answers:

4

i have used js to multiply but only 1st row is getting multiplied other rows are nt getting multiplied.

<?php 
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("form1", $con);


error_reporting(E_ALL ^ E_NOTICE);
$nam=$_REQUEST['select1'];


 $row=mysql_query("select * from inv where name='$nam'");
while($row1=mysql_fetch_array($row))
{ 
$Name=$row1['Name'];
    $Address =$row1['Address'];
    $City=$row1['City'];
        $Pincode=$row1['Pincode'];
    $No=$row1['No'];
    $Date=$row1['Date'];
    $DCNo=$row1['DCNo'];
    $DcDate=$row1['DcDate'];
    $YourOrderNo=$row1['YourOrderNo'];
    $OrderDate=$row1['OrderDate'];
    $VendorCode=$row1['VendorCode'];
    $SNo=$row1['SNo'];
    $descofgoods=$row1['descofgoods'];
    $Qty=$row1['Qty'];
    $Rate=$row1['Rate'];
    $Amount=$row1['Amount'];
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
<html xmlns="http://www.w3.org/1999/xhtml"&gt;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
 <script type="text/javascript">
       **function ram()
       {

       var q=document.getElementById('qty').value;

       var r=document.getElementById('rate').value;

       document.getElementById('amt').value=q*r;

       }**

       </script>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <table width="1315" border="0">
  <script type="text/javascript">
function g()
{
form1.submit();
}
</script>
  <tr>
    <th>Name</th>
    <th align="left"><select name="select1" onchange="g();">
      <option value="" selected="selected">select</option>
      <?php $row=mysql_query("select Name from inv ");
while($row1=mysql_fetch_array($row))
{ ?>
      <option value="<?php echo  $row1['Name'];?>"><?php echo  $row1['Name'];?></option>
      <?php } ?>
    </select></th>
  </tr>
  <tr>
    <th>Address</th>
    <th align="left"><textarea name="Address"><?php echo $Address;?></textarea></th>
  </tr>
  <tr>
    <th>City</th>
    <th align="left"><input type="text" name="City" value='<?php echo $City;?>' /></th>
  </tr>
  <tr>
    <th>Pincode</th>
    <th align="left"><input type="text" name="Pincode"  value='<?php echo $Pincode;?>'></th>
  </tr>
  <tr>
    <th>No</th>
    <th align="left"><input type="text" name="No2" value='<?php echo $No;?>' readonly="" /></th>
  </tr>
  <tr>
    <th>Date</th>
    <th align="left"><input type="text" name="Date" value='<?php echo $Date;?>' readonly="" /></th>
  </tr>
  <tr>
    <th>DCNo</th>
    <th align="left"><input type="text" name="DCNo" value='<?php echo $DCNo;?>' readonly="" /></th>
  </tr>
  <tr>
    <th>DcDate:</th>
    <th align="left"><input type="text" name="DcDate" value='<?php echo $DcDate;?>' /></th>
  </tr>
  <tr>
    <th>YourOrderNo</th>
    <th align="left"><input type="text" name="YourOrderNo" value='<?php echo $YourOrderNo;?>' readonly="" /></th>
  </tr>
  <tr>
    <th>OrderDate</th>
    <th align="left"><input type="text" name="OrderDate" value='<?php echo $OrderDate;?>' readonly="" /></th>
  </tr>
  <tr>
<th width="80">VendorCode</th>
  <th width="1225" align="left"><input type="text" name="VendorCode"  value='<?php echo $VendorCode;?>' readonly="" /></th>
</tr>
  </table>
  <table width="1313" border="0">

    <tr>
      <td width="44">&nbsp;</td>
      <td width="71">SNO</td>
      <td width="527">DESCRIPTION</td>
      <td width="214">QUANTITY</td>
      <td width="214">RATE/UNIT</td>
      <td width="217">AMOUNT</td>
    </tr>
                <?php $i=1;  
        $row=mysql_query("select * from inv where Name='$nam'");
while($row1=mysql_fetch_array($row))
{ 
$descofgoods=$row1['descofgoods'];
    $Qty=$row1['Qty'];
    $Rate=$row1['Rate'];
    $Amount=$row1['Amount'];
?>
    <tr>
      <td><input type="checkbox" name="checkbox" value="checkbox" /></td>
      <td><input type="text" name="No" value='<?php echo $No;?>' readonly=""/></td>
      <td><input type="text" name="descofgoods" value='<?php echo $descofgoods;?>' /></td>
      <td><input type="text" name="qty" maxlength="50000000" id="qty"/></td>
      <td><input type="text" name="Rate"  value='<?php echo $Rate;?>' id="rate" onclick="ram()";></td>
      <td><input type="text" name="Amount"   id="amt"/></td>
    </tr>
     <?php  $i++;} ?>
    <tr>
      <th colspan="2"><a href="pp.php?msg=<?php echo $nam;?>">Print</a></th>
    </tr>
  </table>
  <label></label>
</form>
</body>
</html>
+1  A: 

I didn't read all of your code but i think problem is with your tag id it must be unique.

var q=document.getElementById('qty').value;

var r=document.getElementById('rate').value;

document.getElementById('amt').value=q*r;

javascript didn't get the other tag as you have more than one Tag with id 'qty', 'rate', 'amt', so javascript only convert the tag which comes first on the page and only multiple it.

TO AVOID THIS YOU SHOULD MAKE SURE THAT YOUR id FOR EACH TAG MUST BE UNIQUE

EDITED

1] Change your javascript function like something

   function ram(id)
   {

   var q=document.getElementById('qty_'+id).value;

   var r=document.getElementById('rate_'+id).value;

   document.getElementById('amt_'+id).value=q*r;

   }

2] add suffix $i to each tag

<td><input type="text" name="qty" maxlength="50000000" id="qty_<?PHP echo($i) ?>"/></td>
      <td><input type="text" name="Rate"  value='<?php echo $Rate;?>' id="rate_<?PHP echo($i) ?>" onclick="ram('<?PHP echo($i) ?>')";></td>
      <td><input type="text" name="Amount"   id="amt_<?PHP echo($i) ?>"/></td>

3] pass argument of the row in onclick function

onclick="ram('<?PHP echo($i) ?>')"
Salil
Yep, that may be it. Try adding a suffix to all the elements so there's nothing repeated, example: id="amt-<?php echo $ID; ?>"
XaviEsteve
How do i do it?Help me.
DAFFODIL
@Salil u r ans is working.Gr8.
DAFFODIL
A: 

Hi Daffodil,

Try using parseInt():

document.getElementById('amt').value= parseInt(q) * parseInt(r);
XaviEsteve
This is nt working.Any alternative ans.THnx a lot for u r ans
DAFFODIL
+1  A: 

The problem you are having is that you use getElementById for this situation where you have multiple rows. An Id should be unique, so therefor it will only get the "first" match when using getElementById.

CharlesLeaf
A: 

Please give more clarity to the question.

RINSON KE
This will multiply only 1st row but wen ,i hv multiple rows,it is nt getting multiplied.
DAFFODIL