Δυναμική άθροιση στήλης πίνακα

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Geotenia
Δημοσιεύσεις: 40
Εγγραφή: 15 Μαρ 2011 09:55

Δυναμική άθροιση στήλης πίνακα

Δημοσίευση από Geotenia » 15 Μαρ 2011 10:04

Εχω τον παρακάτω κώδικα

Κώδικας: Επιλογή όλων

<script type = "text/javascript">
function calc&#40;myid&#41; &#123;
var x = parseFloat&#40;document.getElementById&#40;"axposothta&#91;"+myid+"&#93;"&#41;.value&#41;;
var y = parseFloat&#40;document.getElementById&#40;"axkostos&#91;"+myid+"&#93;"&#41;.value&#41;;
document.getElementById&#40;"axtotkos&#91;"+myid+"&#93;"&#41;.value = x * y;
&#125;
</script>

<?php
if&#40;!isset&#40;$_POST&#91;'id'&#93;&#41;&#41; &#123;	
//if &#40;isset&#40;$_GET&#91;'id'&#93;&#41;&#123;
	$qa = "SELECT Analysh_kostoys_Omada_A.Ergo_ID, Analysh_kostoys_Omada_A.*, Omada_A.*, Analysh_kostoys_Omada_A.Posothta*Analysh_kostoys_Omada_A.Kostos AS total_cost, Analysh_kostoys_Omada_A.Ax_Posothta*Analysh_kostoys_Omada_A.Ax_Kostos AS ax_total_cost FROM Omada_A INNER JOIN Analysh_kostoys_Omada_A ON Omada_A.Omada_A_ID = Analysh_kostoys_Omada_A.Ergasia
 WHERE Analysh_kostoys_Omada_A.Ergo_ID=&#123;$_GET&#91;'id'&#93;&#125;";
	$ra = mysql_query&#40;$qa&#41;; // Run the query.
	$count=mysql_num_rows&#40;$ra&#41;;
	

$i = 0;

echo "</br>";
print "<form name='namestoupdate' method='post' action='oikonomika?id=&#123;$_GET&#91;'id'&#93;&#125;'>";
echo "<table cellpadding=\"1\" cellspacing=\"0\" border=\"1\" width=\"950\" frame=\"border\" id=\"sumtable\"><h3>Ομάδα Α</h3>";
echo "<tr><th></th><th><h3>Κωδικός</br>εργασίας</h3></th><th><h3>Περιγραφή</br>εργασίας</h3></th><th><h3>Ποσότητα</h3></th><th><h3>Μ/Μ</h3></th><th><h3>Τιμή</br>μονάδας</h3></th><th><h3>Μερικό</br>σύνολο</h3></th><th><h3>Εγκεκριμένη</br>ποσότητα</h3></th><th><h3>Εγκεκριμένo</br>κόστος</h3></th><th><h3>Εγκεκριμένo</br>σύνολο</h3></th></tr>";

$total=0;
$axtotal=0;
while &#40;$row = mysql_fetch_array&#40;$ra&#41;&#41; &#123;

  print "<tr><td><input type='hidden' name='aid&#91;$i&#93;' value='&#123;$row&#91;'a_a_web'&#93;&#125;' /></td>";
  print "<td><p>&#123;$row&#91;'Kod_ergasias_A'&#93;&#125;</p></td>";
  print "<td><p>&#123;$row&#91;'Perigrafh_ergasias_A'&#93;&#125;</p></td>"; 
  print "<td align=\"right\" width=\"50\"><p>".number_format&#40;$row&#91;'Posothta'&#93;,2,",","."&#41;."</p></td>";    
  print "<td align=\"center\" width=\"50\"><p>&#123;$row&#91;'Monada'&#93;&#125;</p></td>";
  print "<td align=\"right\" width=\"50\"><p>".number_format&#40;$row&#91;'Kostos'&#93;,2,",","."&#41;."</p></td>";
  print "<td align=\"right\" width=\"50\"><p>".number_format&#40;$row&#91;'total_cost'&#93;,2,",","."&#41;."</p></td>";        
  print "<td align=\"right\"><p><input type='text' name='axposothta&#91;$i&#93;' id='axposothta&#91;$i&#93;' value='".number_format&#40;$row&#91;'Ax_Posothta'&#93;,2,",","."&#41;."' size=\"8\" style=\"text-align&#58;right\" onchange = \"calc&#40;&#91;$i&#93;&#41;\"/></p></td>";
  print "<td align=\"right\"><p><input type='text' name='axkostos&#91;$i&#93;' id='axkostos&#91;$i&#93;' value='".$row&#91;'Ax_Kostos'&#93;."'size=\"8\" style=\"text-align&#58;right\" onchange = \"calc&#40;&#91;$i&#93;&#41;\" /></p></td>";  
  print "<td align=\"right\"><p><input type='text' name='axtotkos&#91;$i&#93;' id='axtotkos&#91;$i&#93;' value='".number_format&#40;$row&#91;'ax_total_cost'&#93;,2,",","."&#41;."'size=\"8\" style=\"text-align&#58;right\" /></p></td></tr>";  
++$i;


$total=$total+$row&#91;'total_cost'&#93;;
$axtotal=$axtotal+$row&#91;'ax_total_cost'&#93;;
&#125;
?>
<tr><td colspan="5" align="right"><h3>Σύνολα</h3></td>
<input type="hidden" name="id" value="<?php echo $_GET&#91;'id'&#93; ?>" />
<td colspan="2" align="right"><h3><input type="text" name="kostA" value="<?php echo number_format&#40;$total,2,",","."&#41;?>" size="7" style="text-align&#58;right"/></h3></td>
<td colspan="3" align="right"><h3><input type="text" name="axkostA" id="axkostA" value="<?php echo number_format&#40;$axtotal,2,",","."&#41;?>" size="7" style="text-align&#58;right"/></h3></td>
<tr><td colspan="10" align="center">
<input type='submit' value='Υποβολή' />
</td></tr></table>
</form>

<?php
&#125; else &#123;

$kostA=$_POST&#91;'kostA'&#93;;
echo $kostA;
echo "</br>".$_POST&#91;'axkostA'&#93;."</br>";

if &#40;count&#40;$_POST&#91;'axkostos'&#93;!=0&#41;&#41;&#123;

$size = count&#40;$_POST&#91;'axkostos'&#93;&#41;;
$i = 0;
while &#40;$i < $size&#41; &#123;
$axposothta= mysql_real_escape_string&#40;$_POST&#91;'axposothta'&#93;&#91;$i&#93;&#41;;
echo $axposothta."</br>";
$axkostos= $_POST&#91;'axkostos'&#93;&#91;$i&#93;;

$id = $_POST&#91;'aid'&#93;&#91;$i&#93;;

$query = "UPDATE `Axiologhsh_test`.`Analysh_kostoys_Omada_A` SET `Ax_Kostos` = '$axkostos', `Ax_Posothta`='$axposothta' WHERE `a_a_web` = '$id';";
mysql_query&#40;$query&#41; or die &#40;"Error in query&#58; $query"&#41;;
++$i;
&#125;
&#125;
&#125;
?>
Κάθε φορά που αλλάζει μία τιμή στο $axkostos ή στο $axposothta το γινόμενό τους βγαίνει στο $axtotkos.
Το πρόβλημα είναι ότι θέλω με ένα script να γίνεται δυναμικά το άθροισμα του $axtotkos στο $axkostA ώστε να το κάνω Post μετά.
Μπορεί κάποιος να βοηθήσει?

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6234
Εγγραφή: 30 Νοέμ 2004 03:09

Δυναμική άθροιση στήλης πίνακα

Δημοσίευση από fafos » 15 Μαρ 2011 16:15

prepei na xrhsimopoihseis kapoio ajax script.. me jquery mporeis na to kaneis me thn live() kai thn keyup().. des ena aplo paradeigma prostheshs 2 pedion:

Κώδικας: Επιλογή όλων

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-7">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
</head>
<body>
<form>
<input size="20" type="text" name="ValOne" id="ValOne" class="DropChange"><br>
<input size="20" type="text" name="ValTwo" id="ValTwo" class="DropChange">
</form>

<span id="Total"></span>
<script type="text/javascript" src="http&#58;//ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> 
<script type="text/javascript">

    $&#40;'.DropChange'&#41;.live&#40;"keyup", &#40;function&#40;&#41;&#123;
        var total = 0;
        $&#40;'.DropChange'&#41;.each&#40;function&#40;&#41;&#123;
            var n = +$&#40;this&#41;.val&#40;&#41;;
            if&#40;total&#41;&#123;
                total += n;
            &#125; else&#123;
                total = n;
            &#125;
        &#125;&#41;;
		if&#40;total > 0&#41; &#123;
        $&#40;'#Total'&#41;.text&#40;total&#41;;
&#125;
         &#125;&#41;&#41;;

		 
</script></body>
</html>
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Geotenia
Δημοσιεύσεις: 40
Εγγραφή: 15 Μαρ 2011 09:55

Δυναμική άθροιση στήλης πίνακα

Δημοσίευση από Geotenia » 16 Μαρ 2011 07:47

Βρέθηκε η λύση. Την ποστάρω εδώ γιά να βοηθήσω και κανέναν άλλον.
Στη java της αρχής προστέθηκε και αυτό

Κώδικας: Επιλογή όλων

<script type = "text/javascript">
function calc&#40;myid&#41; &#123;
	
var x = parseFloat&#40;document.getElementById&#40;"axposothtaa&#91;"+myid+"&#93;"&#41;.value&#41;;
var y = parseFloat&#40;document.getElementById&#40;"axkostosa&#91;"+myid+"&#93;"&#41;.value&#41;;
document.getElementById&#40;"axtotkosa&#91;"+myid+"&#93;"&#41;.value = x * y;

var the_count=document.getElementById&#40;"CountAxtotkosA"&#41;.value;
var z=0;
var the_totkos=0;
for &#40;z=0;z<the_count;z++&#41; &#123;
	var axtotkos=parseFloat&#40;document.getElementById&#40;"axtotkosa&#91;"+z+"&#93;"&#41;.value&#41;;
	the_totkos += axtotkos;
	
&#125;
document.getElementById&#40;"axkostA"&#41;.value=the_totkos;
&#125;

</script>
και στον πίνακα μπήκε ένα hidden πεδίο

kafkas
Δημοσιεύσεις: 20
Εγγραφή: 16 Φεβ 2011 11:37

Δυναμική άθροιση στήλης πίνακα

Δημοσίευση από kafkas » 16 Μαρ 2011 11:44

Φιλαράκο εχεις ενα λαθάκι.
πρεπει να βεβαιωνεσε οτι η τιμή ειναι με . και οχι με , αλλιώς η συνάρτηση parseFloat επιστρέφει NaN.

και βέβαια αν ειναι για να κάνουμε μια πρόσθση πεδιών να χρησιμοποιούμε 3rd part Scripts τοτε καλύτερα να αλλαξουμε επάγγελμα.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Δυναμική άθροιση στήλης πίνακα

Δημοσίευση από korgr » 16 Μαρ 2011 12:17

kafkas έγραψε: και βέβαια αν ειναι για να κάνουμε μια πρόσθση πεδιών να χρησιμοποιούμε 3rd part Scripts τοτε καλύτερα να αλλαξουμε επάγγελμα.
Αν μιλάμε για επαγγελματίες δεν θα διαφωνήσω μαζί σου
Πώς είσαι όμως σίγουρος πως αυτός που ρώτησε δεν είναι φοιτητής ή κάποιος που ασχολείται με χόμπυ το web authoring?

Geotenia
Δημοσιεύσεις: 40
Εγγραφή: 15 Μαρ 2011 09:55

Δυναμική άθροιση στήλης πίνακα

Δημοσίευση από Geotenia » 16 Μαρ 2011 12:54

kafkas έγραψε:Φιλαράκο εχεις ενα λαθάκι.
πρεπει να βεβαιωνεσε οτι η τιμή ειναι με . και οχι με , αλλιώς η συνάρτηση parseFloat επιστρέφει NaN.

και βέβαια αν ειναι για να κάνουμε μια πρόσθση πεδιών να χρησιμοποιούμε 3rd part Scripts τοτε καλύτερα να αλλαξουμε επάγγελμα.
Φίλε μου όντως ασχολούμαι εντελώς ερασιτεχνικά. Γι'αυτό αν θέλετε μη με δέρνετε.

Ερώτηση (και όποιος θέλει και ξέρει απαντάει).
Επειδή οι τιμές μου είναι σε ελληνικό format τις διαβάζει λάθος. Δηλαδή το 1.000,00 το διαβάζει σαν 1. Πως το αλλάζουμε αυτό?

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες