Avatar billede masteraaen Novice
25. oktober 2010 - 22:43 Der er 3 kommentarer og
1 løsning

Sumfelter i tabel - summerer under udfyldelse - php

Hej.

Jeg har en form, som brugerne skal udfylde og dernæst sende til opdatering af en mysql-tabel.

Kan det lade sig gøre, at brugeren løbende kan følge summen af et beløbs-felt imens brugeren udfylder tabellen?
I så fald: how??

:-)

På forhånd tak.
26. oktober 2010 - 19:55 #1
Jamen det kan helt sikkert lade sig goere, men skoent jeg har bakset med det baade i morges foer jeg gik paa arbejde og her til aften har jeg ikke loest det.  Det irriterer mig.

Loesningen ligger i at bruge javascript.  Beloebsfelterne skal have en onChange() event saaledes at naar der er indfoert et tal (naar vaerdien aendres) saa laegges tallet via javascriptet til et sum felt der saaledes hele tiden viser totalen af tallene.

Jeg kan sagtens lave onClick() eventen, men den vil ikke lade mig fange vaerdien af beloebsfeltet, og saa er der jo ingen fidus i det.

Men jeg blev bidt af spoergsmaalet, saa jeg har i sinde at oprette et spoergsmaal paa Eksperten om onClick events.  Hvis jeg faar det loest, og hvis dit spoergsmaal saa stadig er aktuelt, saa vender jeg tilbage.
Avatar billede masteraaen Novice
26. oktober 2010 - 20:22 #2
Helt enig i problemstillingen. Jeg surfer også videre efter en løsning. Det er absolut stadig højaktuelt :-)))
27. oktober 2010 - 11:58 #3
Jeg ved ikke om du har fulgt mine eskapader paa Eksperten, men nu har jeg omsider et svar.

Jeg har lavet en formular for at opsummere omkostninger til skiferie (maaske en mental forberedelse til hvad der foelger om en tre maaneder) hvor summen loebende bliver talt op hver gang curseren flyttes fra et input felt.  Du kan se og afproeve den her: http://christianjorgensen.be/masteraaen.php .  Hvis det var noget i den henretning du taenkte paa (og hvor posterne saa skal opslaas i database) saa virker nedenstaaende kode.  For hvert inputfelt defineres der en onClick event hvor det indfoerdte beloeb sendes til en funktion.  Der bliver beloebet lagt til totalen-indtil-nu og indsat i totalfeltet.

</head>
<script type="text/javascript">
var sum = 0;
function sumup(tal)
{
  tal = parseInt(tal);
  sum += tal;
  document.getElementById('total').innerHTML = sum;
}
</script>
<body>
<?
require('connect.php');//forbindelse til mysql
echo "SKIFERIEBUDGET: <br/>";
echo "<table>";
echo "<form action='' method='POST'>";
echo "<tr><td>Rejse: </td><td><input type='text' name='tekst1' onChange = 'sumup(this.value)' /></td></tr>";
echo "<tr><td>Ophold: </td><td><input type='text' name='tekst1' onChange = 'sumup(this.value)' /></td></tr>";
echo "<tr><td>Skipas: </td><td><input type='text' name='tekst1' onChange = 'sumup(this.value)' /></td></tr>";
echo "<tr><td>Mad og drikke: </td><td><input type='text' name='tekst1' onChange = 'sumup(this.value)' /></td></tr>";
echo "<tr><td>Diverse: </td><td><input type='text' name='tekst1' onChange = 'sumup(this.value)' /></td></tr>";
echo "<tr><td>&nbsp;</td><td><input type='submit' name='submit' /></td></tr>";
echo "</form>";
echo "</table>";
echo "<p>Loebende total: <b id='total'>0</b></p>"; 
mysql_close($link); 
?>
</body>
</html>
Avatar billede masteraaen Novice
27. oktober 2010 - 20:22 #4
Hej Christian.

Tusinde tak for den fabelagtige indsats - du er jo en rigtig ildsjæl. Det var lige, hvad jeg skulle bruge.

Det er altid sådan, at nu når man har fundet hjælp, så er det pludselig flere steder. Jeg stødte også på nedenstående link, som absolut også er rigtig godt!

http://www.davidflanagan.com/javascript5/display.php?n=1-3&f=01/03.html

Tak for hjælpen igen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester