2011-03-06 1 views
1

Le script ci-dessous calcule le sous-total et le total des éléments donnés.Calcul des valeurs au niveau du clavier à l'aide de jquery

<script type="text/javascript"> 
$(function(){ 





    $('input[type=button]').click(function(){ 



}); 


$('input[id^=qty]').keyup(function(){ 
var gtotal=0; 
    var parentDiv = $(this).closest('#korokor'); 
    var curprice=parentDiv.find('input[id^=price]').val(); 
    var curqty= this.value; 
    var curtotal=curprice * curqty; 




    parentDiv.find('input[id^=subtotal]').val(curtotal); 



    $('input[id^=subtotal]').each(function(index) { 
    var currentnum= $(this).val(); 
    var intnum =parseInt(currentnum); 
    gtotal=gtotal + intnum; 



    }); 

    $('input[name=supertotal]').val(gtotal); 
    $('input[name=payment]').val(gtotal); 

}); 
}); 
</script> 
<?php  
    $viewcarter=mysql_query("SELECT * FROM prod_table WHERE CURRP=1"); 
?> 



</head> 
<body> 
<table border="1"> 
    <tr> 
    <th>ID</th> 
    <th>PRODUCT</th> 
    <th>QA</th> 
    <th>PRICE</th> 
    <th>QTY BUY</th> 
    <th>SUBTOTAL</th> 
    <th>REMOVE</th> 
    </tr> 
</table> 
<?php 
if(mysql_num_rows($viewcarter)==0){ 
    //no products 

}else{ 
while($row=mysql_fetch_assoc($viewcarter)){ 

?> 

<form name="blabber" method="get" action="expander.php"> 
<div id="korokor"> 
<table border="1"> 


<tr> 
    <td><?php echo $row['PID']; ?></td> 
       <td><?php echo $row['PRODUCT']; ?></td> 
       <td><?php echo $row['QTYHAND']; ?></td> 
       <td><?php echo $row['S_PRICE']; ?></td> 

       <input type="hidden" id="pids" name="ids[]" value="<?php echo $row['PID']; ?>"> 
       <input type="hidden" id="pname" name="product[]" value="<?php echo $row['PRODUCT']; ?>"> 
       <input type="hidden" name="dprice[]" value="<?php echo $row['B_PRICE']; ?>"> 
       <input type="hidden" name="sprice[]" id="<?php echo 'price'.$row['PID']; ?>" value="<?php echo $row['S_PRICE']; ?>"/> 
       <input type="hidden" name="qoh[]" value="<?php echo $row['QTYHAND']; ?>"/> 

       <td><input type="text" name="qbuys[]" id="<?php echo 'qty'.$row['PID']; ?>"/></td> 
       <td><input type="text" name="subtotal[]" id="<?php echo 'subtotal'.$row['PID']; ?>"/></td> 
       <td><a href="pagmasdan.php?action=2&id=<?php echo $row['PID']; ?>"><img src="delete-icon.png"></img></a></td> 
</tr> 




</table> 
</div> 

<?php 
} 
?> 

Grand Total:<input type="text" name="supertotal" value=""/><br/> 
Customer:<input type="text" name="customer" value=""/><br/> 
Payment:<input type="text" name="payment" value=""/><br/> 
<input type="submit" value="sell"/> 
</form> 
<?php 
} 

>

Il fonctionne, mais j'ai un petit problème avec son apparence: enter image description here

J'ai essayé de les placer tous dans une table pour le rendre plus agréable, mais le script qui calcule les valeurs au keyup ne fonctionne plus. J'ai besoin d'un peu d'aide pour modifier l'apparence de l'interface.

Répondre

1

Utilisez une seule table ...

<form name="blabber" method="get" action="expander.php"> 
<div id="korokor"> 
<table border="1"> 
    <tr> 
    <th>ID</th> 
    <th>PRODUCT</th> 
    <th>QA</th> 
    <th>PRICE</th> 
    <th>QTY BUY</th> 
    <th>SUBTOTAL</th> 
    <th>REMOVE</th> 
    </tr> 

<?php 
if(mysql_num_rows($viewcarter)==0){ 
    //no products 
}else{ 
while($row=mysql_fetch_assoc($viewcarter)){ 
?> 
//now the loop adds a new row rather than new table for each item in the cart. 
<tr class="cartItem"> 
    <td><?php echo $row['PID']; ?></td> 
    <td><?php echo $row['PRODUCT']; ?></td> 
    <td class="qnty"><?php echo $row['QTYHAND']; ?></td> 
    <td class="unitPrice"><?php echo $row['S_PRICE']; ?></td> 
    <td><input type="text" name="qbuys[]" id="<?php echo 'qty'.$row['PID']; ?>"/></td> 
    <td><input type="text" name="subtotal[]" id="<?php echo 'subtotal'.$row['PID']; ?>"/></td> 
    <td><a href="pagmasdan.php?action=2&id=<?php echo $row['PID']; ?>"><img src="delete-icon.png"></img></a> 
     <input type="hidden" id="pids" name="ids[]" value="<?php echo $row['PID']; ?>"> 
     <input type="hidden" id="pname" name="product[]" value="<?php echo $row['PRODUCT']; ?>"> 
     <input type="hidden" name="dprice[]" value="<?php echo $row['B_PRICE']; ?>"> 
     <input type="hidden" name="sprice[]" id="<?php echo 'price'.$row['PID']; ?>" value="<?php echo $row['S_PRICE']; ?>"/> 
     <input type="hidden" name="qoh[]" value="<?php echo $row['QTYHAND']; ?>"/> 
    </td> 
</tr> 

<?php 
} 
?> 
</table> 
</div> 

Cela devrait fixer une grande partie de la mise en page, ayant des charges de tables que vous essayez de faire est tout simplement pas une bonne idée. Si le javascript ne fonctionne pas avec une seule table, il faut l'adapter pour que cela fonctionne.

Je prendrai un coup d'œil à ce moment ...

Ceci est seulement peur im très rugueuse (lentilles de contact séché tout d'un coup) .. mais

var runningSub = 0; 
var total = 0; 
$('.cartItem').each(function(){ 
    var qnty = $('this .qnty').html(); 
    var unitPrice = $('this .unitPrice').html(); 
    runningSub + (qnty * unitPrice); 
)}; 
// the cart items have been processed so.. 
if(runningSub >0){ 
    total = (calc for the total price) 
} 
// Now you can set your values.. 

Si vous exécutez le ci-dessus avec les ajouts nécessaires pour calculer le total final et de mettre les valeurs sur votre page, vous pourriez avoir quelque chose qui fonctionne .. ou au moins une bonne idée d'une direction pour y aller ..

s'il vous plaît regardez au HTML pour la table comme je l'ai modifié pour rendre le javascript plus simple écrire.

+0

Merci, mais lorsque vous essayez de l'exécuter. Le script qui calcule les valeurs ne fonctionnera plus. – user225269

+0

s'il vous plaît regardez la mise à jour –

Questions connexes