Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][JavaScript]Proste obliczenia w formularzu
lordmonkey
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


witam,
dzisiaj mam coś takiego
  1. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  4. <script type="text/javascript">
  5. function pro(wellf,skillf){
  6. var wellness = 1 + 2 * (wellf / 100);
  7. var productiv = 0.25 * skillf * 2 * wellness * 2 * 1.5;
  8. document.getElementById('prod').innerHTML = productiv;
  9. }
  10. </script>
  11. </head>
  12.  
  13. <body>
  14. <form action="" method="POST">
  15. <table >
  16. <tr>
  17. <td>
  18. Wellness </td>
  19. <td width=65>
  20. <input type="text" name="well" size="5"/>
  21. </td>
  22. <td >
  23. Skill </td>
  24. <td width=65>
  25. <input type="text" name="skill" size="5"/>
  26. </td>
  27. <td>
  28. Productivity</td>
  29. <td >
  30. <input type="text" name="prod" size="5" />
  31. </td>
  32. <input type="button" value="Calculate" onclick="pro(skill, well)"/></td>
  33. </tr>
  34. </table>
  35. </form>
  36. </body>
  37. </html>


jak należy to zrobić, aby po naciśnięciu przycisku Calculate w "<input type="text" name="prod" size="5" />"pojawil sie wynik z funkcji?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Może zamiast innerHTML użyj value? winksmiley.jpg


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
lordmonkey
post
Post #3





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


ja narazie się dopiero uczę także jeżeli mógłbyś pokazać trochę kodu jak to zrobić to byłbym wdzięczny, a tak poza tym to będzie to działać bez przeładowania strony?(tak jak normalnie w AJAX'ie ?)
Go to the top of the page
+Quote Post
thek
post
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Zamień w funkcji innerHTML na value, czyli z:
document.getElementById('prod').innerHTML = productiv;
na
document.getElementById('prod').value = productiv;
I powinno zadziałać, bo od tego jest JS by działało po stronie klienta.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
lordmonkey
post
Post #5





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


zrobiłem jak napisałeś, ale teraz w okienku z id="prod" wpisuje się NaN, więc musi gdzieś być błąd w funkcji, a nie mam pojęcia gdzie tam mogłem popełnić błąd. :/

EDIT:
dobra doszedłem do tego ale zmieniłem z
Kod
    function pro(wellf,skillf){
        var wellness = 1 + 2 * (wellf / 100);
        var productiv = 0.25 * skillf * 2 * wellness * 2 * 1.5;
        document.getElementById('prod').innerHTML = productiv;
        }


na
Kod
    function pro(){
        var wellness = 1 + 2 * ( document.getElementById('well').value / 100);
        var productiv = 0.25 *  document.getElementById('skill').value * 2 * wellness * 2 * 1.5;
        document.getElementById('prod').value = productiv;
        }


czy dałoby się zrobić tak jak myślałem na początku zeby przekazywać wartości z formularz jako argumenty zamiast czegoś takiego?

Ten post edytował lordmonkey 24.04.2010, 14:41:25
Go to the top of the page
+Quote Post
thek
post
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Da się to zrobić na przynajmniej 2 sposoby. Albo zmieniasz wywołanie funkcji, albo funkcję. To co zrobiłeś to 2 wariant. Wariant pierwszy to zamiana:
  1. <input type="button" value="Calculate" onclick="pro(skill, well)"/></td>
na
  1. <input type="button" value="Calculate" onclick="pro(document.getElementById('skill').value, document.getElementById('well').value )"/></td>

W tym przypadku podanym przeze mnie jawnie przekazujesz wartości, więc skrypt zna je i może przetwarzać. Możesz jeszcze ciut inaczej zrobić jako minimalny mix obu wariantów. Przekazujesz jako parametry same document.getElementbyId('tutaj_id') a w funkcji posługujesz się wywołaniem wellf.value choćby. To więc kwestia wygody tak naprawdę.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 11:12