Formular mit java automatisch berechnen

vasko

Neues Mitglied
Hallo

ich habe diese script
Javascript:
function form_calculate()
{
// Wert des ersten Feldes auslesen:
var preis = Number(document.getElementById('preis').value);
// Wert des zeiten Feldes auslesen:
var stk = Number(document.getElementById('stk').value);
// Das Ergebnisfeld als Object ermittlen, um spaeter das Ergebnis einfuegen zu koennen
var resultField = document.getElementById('test');
// Felder zusammen rechnen
var test = preis*stk;
// Ergebnis ins Ergebnisfeld eintragen
resultField.value = test;
}
hat super funktioniert solange mein form in html war

Jetzt habe ich eine PHP form erstelt und die daten aus mysql ausgelesen

PHP:
mysql_select_db($mysql_database);
$result = mysql_query("SELECT * FROM test");

while($row = mysql_fetch_assoc($result)){

echo '<form action="update.php" method="post">';
echo '<input type="hidden" name="id[]" value="'.$row['id'].'">';
echo '<table width="600" bgcolor="#999999" align="center" border="0" cellpadding="0" cellspacing="2"> ';
echo '<tr>';
echo '<td width="90" bgcolor="#CCCCCC" align="center"><input id="nummer" type="text" name="nummer[]" value="'.$row['nummer'].'" class="input" size="10" maxlength="20"readonly></td>';
echo '<td width="160" bgcolor="#CCCCCC" align="center"><input id="name "type="text" name="name[]" value="'.$row['name'].'" class="input" size="25" maxlength="50"readonly></td>';
echo '<td width="90" bgcolor="#CCCCCC" align="center"><input id="preis" type="text" name="preis[]" value="'.$row['preis'].'" class="input" onkeyup="form_calculate();" size="10" maxlength="20"readonly></td>';
echo '<td width="90" bgcolor="#CCCCCC" align="center"><input id="stk" type="text" name="stk[]" value="'.$row['stk'].'" class="input" onkeyup="form_calculate();" size="10" maxlength="30"></td>';
echo '<td width="90" bgcolor="#CCCCCC" align="center"><input id="test" type="text" name="test[]" value="'.$row['test'].'" class="input" onkeyup="form_calculate();" size="10" maxlength="20"></td>';

echo '</tr>';
echo '</table><br>';
}

das problem ist jetzt, dass es nur erste spalter ausrechnet und die restlichen nicht


wie bekomme iche das hin, dass es alle zeilen rechnet

Danke
 
Zuletzt bearbeitet von einem Moderator:
id = Identifier, das funktioniert nicht wenn man mehr als einen hat. Javascript findet dann immer nur das erste Element mit dieser id.
Habs mal angepasst, aber nicht getestet.

Code:
function form_calculate(index)
{
    // Wert des ersten Feldes auslesen:
    var preis = Number(document.getElementById('preis'+'_'+index).value);
    // Wert des zeiten Feldes auslesen:
    var stk = Number(document.getElementById('stk'+'_'+index).value);
    // Das Ergebnisfeld als Object ermittlen, um spaeter das Ergebnis einfuegen zu koennen
    var resultField = document.getElementById('test'+'_'+index);
    // Felder zusammen rechnen
    var test = preis*stk;
    // Ergebnis ins Ergebnisfeld eintragen
    resultField.value = test;
}

PHP:
mysql_select_db($mysql_database);
$result = mysql_query("SELECT * FROM test");

$i = 0;
while($row = mysql_fetch_assoc($result)){

echo '<form action="update.php" method="post">';
echo '<input type="hidden" name="id[]" value="'.$row['id'].'">';
echo '<table width="600" bgcolor="#999999" align="center" border="0" cellpadding="0" cellspacing="2"> ';
echo '<tr>';
echo '<td width="90" bgcolor="#CCCCCC" align="center"><input id="nummer_'.$i.'" type="text" name="nummer[]" value="'.$row['nummer'].'" class="input" size="10" maxlength="20"readonly></td>';
echo '<td width="160" bgcolor="#CCCCCC" align="center"><input id="name_'.$i.'" type="text" name="name[]" value="'.$row['name'].'" class="input" size="25" maxlength="50"readonly></td>';
echo '<td width="90" bgcolor="#CCCCCC" align="center"><input id="preis_'.$i.'" type="text" name="preis[]" value="'.$row['preis'].'" class="input" onkeyup="form_calculate('.$i.');" size="10" maxlength="20"readonly></td>';
echo '<td width="90" bgcolor="#CCCCCC" align="center"><input id="stk_'.$i.'" type="text" name="stk[]" value="'.$row['stk'].'" class="input" onkeyup="form_calculate('.$i.');" size="10" maxlength="30"></td>';
echo '<td width="90" bgcolor="#CCCCCC" align="center"><input id="test_'.$i.'" type="text" name="test[]" value="'.$row['test'].'" class="input" onkeyup="form_calculate('.$i.');" size="10" maxlength="20"></td>';

$i++;

echo '</tr>';
echo '</table><br>';
}
 

Neue Themen


Zurück
Oben