Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Odświeżanie wartości z pola input
Forum PHP.pl > Forum > Przedszkole
amdziak
Witam,

Mam taki kod:
  1. <tr>
  2. <td><input type=text size =90></td>
  3. <td><input name=ilosc type=text size=5 value=1></td>
  4. <td><input name=cena type=text size=5 value=0></td>
  5. <td><input name=wartosc type=text size=10 value=".$wartosc."></td>
  6. </tr>


chce, aby w ostatnim polu odświeżała mi sie automatycznie wartosc:
dodatkowo wczesniej mam napisane:

  1. $ilosc = floatval(['ilosc']);
  2. $cena = floatval(['cena']);
  3. $wartosc = $ilosc * $cena;


Mógłby ktoś pomóc?
Jestem kompletnym lajkiem w php...

Generalnie chodzi mi o to, żeby po wpisaniu danych do pola ilosc badz cena automatycznie mi sie zmieniala wartosc w polu wartosc... pewnie musze jeszcze jakos dynamicznie pobierac dane z pol do zmiennych...

Z góry dziękuje za wszelkie odpowiedzi.
Kshyhoo
Proszę umieścić kod w znacznikach. Zakładam, że Twój kod to tylko część a nie tylko "trochę" formularza?
Hasło do Google: formularz - lepkie pola.
Czyli musisz wysłać dane a potem te dane umieścić w tym inpucie. Jak? Jest tyle sposobów, GET, POST, SESSION...
amdziak
A mógłbyś mnie trochę bardziej naprowadzić?
Ku pomocy podaje kompletny kod formularza

  1. <form action="form.php" method="post" id="form">
  2. <?php
  3.  
  4. $ilosc = floatval(['ilosc']);
  5. $cena = floatval(['cena']);
  6. $ilosc1 = floatval(['ilosc1']);
  7. $cena1 = floatval(['cena1']);
  8. $ilosc2 = floatval(['ilosc2']);
  9. $cena2 = floatval(['cena2']);
  10. $ilosc3 = floatval(['ilosc3']);
  11. $cena3 = floatval(['cena3']);
  12. $ilosc4 = floatval(['ilosc4']);
  13. $cena4 = floatval(['cena4']);
  14. $wartosc = $ilosc * $cena;
  15. $wartosc1 = $ilosc1 * $cena1;
  16. $wartosc2 = $ilosc2 * $cena2;
  17. $wartosc3 = $ilosc3 * $cena3;
  18. $wartosc4 = $ilosc4 * $cena4;
  19.  
  20.  
  21. //formularz
  22. echo "</br></br></br><center>
  23. <h2> Protokół z wizyty NR: <input type=text size = 12 name=nr></h2></br>
  24. <h4>Protokół wizyty w firmie: <input type=text size=80 name=nazwa_firmy> NIP: <input type=text size=12 name=nip></br>
  25. Osoba wykonująca: </br>
  26. Usługa wykonana dnia: <input type=text size=5> Jak: <input type=radio name=jak value=u_klienta> U Klienta <input type=radio name=jak value =zdalnie> Zdalnie
  27. W godzinach: Od: <input type=text size=3> Do: <input type=text size=3>
  28. Łącznie godzin: <input type=text size=1>
  29. </br></br>
  30. Na Życzenie Klienta wykonano: </br>
  31. <textarea rows=8 cols=100> </textarea> </br>
  32.  
  33. Uwagi ze strony klienta:
  34. <textarea rows=4 cols=45> </textarea>
  35. Uwagi ze strony Wykonawcy:
  36. <textarea rows=4 cols=45> </textarea> </br> </br>
  37.  
  38. Rodzaj usługi:
  39.  
  40. <input type=radio name=rodzaj>Usługa Płatna
  41. <input type=radio name=rodzaj>Usługa Express
  42. <input type=radio name=rodzaj>Raport do Programu
  43. <input type=radio name=rodzaj>Umowa Serwisowa
  44. <input type=radio name=rodzaj>Umowa Wdrożeniowa
  45. </br>
  46. </br>
  47. <table>
  48. <tr>
  49. <td>Opis Usługi</td>
  50. <td>Ilość</td>
  51. <td>Cena</td>
  52. <td>Wartość</td>
  53. </tr>
  54. <tr>
  55. <td><input type=text size =90></td>
  56. <td><input name=ilosc type=text size=5 value=1></td>
  57. <td><input name=cena type=text size=5 value=0></td>
  58. <td><input name=wartosc type=text size=10 value="'<?php if(isset($wartosc)) echo $wartosc; ?>'"></td>
  59. </tr>
  60. <tr>
  61. <td><input type=text size =90></td>
  62. <td><input name=ilosc1 type=text size=5 value=1></td>
  63. <td><input name=cena1 type=text size=5 value=0></td>
  64. <td><input name=wartosc1 type=text size=10 value=".$wartosc1."></td>
  65. </tr>
  66. <tr>
  67. <td><input type=text size =90></td>
  68. <td><input name=ilosc2 type=text size=5 value=1></td>
  69. <td><input name=cena2 type=text size=5 value=0></td>
  70. <td><input name=wartosc2 type=text size=10 value=".$wartosc2."></td>
  71. </tr>
  72. <tr>
  73. <td><input type=text size =90></td>
  74. <td><input name=ilosc3 type=text size=5 value=1></td>
  75. <td><input name=cena3 type=text size=5 value=0></td>
  76. <td><input name=wartosc3 type=text size=10 value=".$wartosc3."></td>
  77. </tr>
  78. <tr>
  79. <td><input type=text size =90></td>
  80. <td><input name=ilosc4 type=text size=5 value=1></td>
  81. <td><input name=cena4 type=text size=5 value=0></td>
  82. <td><input name=wartosc4 type=text size=10 value=".$wartosc4."></td>
  83. </tr>
  84. <tr>
  85. <td></td>
  86. <td></td>
  87. <td>Razem wartość Netto:</td>
  88. <td><input type=text size=10> </td></tr>
  89. </table>
  90.  
  91. <h6>
  92. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In gravida facilisis cursus. Cras condimentum vitae nisl vitae euismod. Praesent erat velit, ullamcorper sed odio imperdiet, suscipit scelerisque magna. Nunc in lobortis dolor. In at magna vel sem imperdiet laoreet. Donec tristique et neque euismod ultricies. Proin lacus sem, suscipit sed porta ac, aliquam et ligula. Duis suscipit tincidunt orci, euismod tempus libero feugiat non. Integer mollis enim arcu, et ultricies dolor interdum a. Fusce ut pretium nibh.
  93. </h6>
  94. </h4></center>";
  95.  
  96. ?>
  97. </form>
com
Kshyhoo

chyba nie zrozumiałeś go dobrze przynajmniej tak mi się wydaje, przyda Ci się tu AJAX np ten z JQuery http://api.jquery.com/jquery.ajax/ na zdarzeniu blur ceny wink.gif
Kshyhoo
Powinni wprowadzić obowiązkowy przedmiot w szkole: jak korzystać z Google. Pierwszy wynik.
Gotowca nie będzie, musisz się coś nauczyć.

Cytat(com @ 7.01.2014, 23:12:02 ) *
Kshyhoo

chyba nie zrozumiałeś go dobrze przynajmniej tak mi się wydaje, przyda Ci się tu AJAX np ten z JQuery http://api.jquery.com/jquery.ajax/ na zdarzeniu blur ceny wink.gif

Nie napisał, że bez przeładowania...

A może napisał... za długo przed kompem, to już 15 godzina...
com
Cytat
Generalnie chodzi mi o to, żeby po wpisaniu danych do pola ilosc badz cena automatycznie mi sie zmieniala wartosc w polu wartosc...


chyba mówi samo za siebie, przynajmniej wdg mnie i przeczy temu co mu sugerujesz... ale moje tez nie zadziała bo zmienia 2 pola, tylko pytanie czy czasem cena nie powinna być pobierana a nie podawana z palca, ale to już musi ustalić sam autor wink.gif
amdziak
no właśnie chodzi mi o to, żeby pola ilość i cena były wpisywane z palca, a pole wartość się automatycznie zmieniało, bez przeładowania strony...
com
no to tak jak napisałem, tylko użyjesz Ajaxa dla obu pól najlepiej na zdarzeniu blur, a dodatkowo input wartość możesz ustawić na tylko do odczytu wink.gif
Kshyhoo
Gotowiec w ramach rekompensaty za niezrozumienie problemu smile.gif Dopasuj do swoich potrzeb.
  1. <script language="javascript" type="text/javascript">
  2. function licz(pc,pi,pl) {
  3. maska = /^\d+$/;
  4. if (maska.test(pi.value)) {
  5. pl.value = format(pc.value*pi.value,2);
  6. } else {
  7. pl.value="";
  8. pi.value="";
  9. }
  10. }
  11.  
  12. function format(liczba, lmpp) {
  13. ile = ""+Math.round(liczba*Math.pow(10,lmpp))/Math.pow(10,lmpp);
  14. if (ile.indexOf(".")<0) ile+=".0";
  15. while ((ile.length-ile.indexOf(".")-1)<lmpp) ile = ile+"0";
  16. return ile;
  17. }
  18.  
  19. <form name="f1" action="#" method="post">
  20. <input type="text" name="pc" value="" /> +
  21. <input type="text" name="pi" onkeyup="licz(document.f1.pc,document.f1.pi,document.f1.pl)" />
  22. <input type="text" name="pl" readonly="readonly" />
  23. <br />
  24. <input type="submit" value="Wyślij" />
  25. </form>
amdziak
Podziękował! smile.gif
com
Kshyhoo

oczywiście nie przeczę ze można zrobić to w samym js, co zresztą pokazałeś ale jak to nasz nospor często powtarza nigdy nie ufaj danym z js, bo tam można zrobić rożne sztuczki biggrin.gif
amdziak
Przerobiłem sobie ten skrypt i teraz wygląda tak:

  1. <form action="form.php" method="post" id="form" name="f1" action="#">
  2.  
  3. <script language="javascript" type="text/javascript">
  4. function licz(ilosc,cena,wartosc) {
  5. maska = /^\d+$/;
  6. if (maska.test(cena.value)) {
  7. pl.value = format(ilosc.value*cena.value,2);
  8. } else {
  9. wartosc.value="";
  10. cena.value="";
  11. }
  12. }
  13.  
  14. function format(liczba, lmpp) {
  15. ile = ""+Math.round(liczba*Math.pow(10,lmpp))/Math.pow(10,lmpp);
  16. if (ile.indexOf(".")<0) ile+=".0";
  17. while ((ile.length-ile.indexOf(".")-1)<lmpp) ile = ile+"0";
  18. return ile;
  19. }
  20. </script>
  21.  
  22. <?php
  23. //procesy
  24.  
  25. $ilosc = floatval(['ilosc']);
  26. $cena = floatval(['cena']);
  27. $ilosc1 = floatval(['ilosc1']);
  28. $cena1 = floatval(['cena1']);
  29. $ilosc2 = floatval(['ilosc2']);
  30. $cena2 = floatval(['cena2']);
  31. $ilosc3 = floatval(['ilosc3']);
  32. $cena3 = floatval(['cena3']);
  33. $ilosc4 = floatval(['ilosc4']);
  34. $cena4 = floatval(['cena4']);
  35. $wartosc = $ilosc * $cena;
  36. $wartosc1 = $ilosc1 * $cena1;
  37. $wartosc2 = $ilosc2 * $cena2;
  38. $wartosc3 = $ilosc3 * $cena3;
  39. $wartosc4 = $ilosc4 * $cena4;
  40.  
  41.  
  42. //formularz
  43. echo "</br></br></br><center>
  44. <h2> Protokół z wizyty NR: <input type=text size = 12 name=nr></h2></br>
  45. <h4>Protokół wizyty w firmie: <input type=text size=80 name=nazwa_firmy> NIP: <input type=text size=12 name=nip></br>
  46. Osoba wykonująca: </br>
  47. Usługa wykonana dnia: <input type=text size=5> Jak: <input type=radio name=jak value=u_klienta> U Klienta <input type=radio name=jak value =zdalnie> Zdalnie
  48. W godzinach: Od: <input type=text size=3> Do: <input type=text size=3>
  49. Łącznie godzin: <input type=text size=1>
  50. </br></br>
  51. Na Życzenie Klienta wykonano: </br>
  52. <textarea rows=8 cols=100> </textarea> </br>
  53.  
  54. Uwagi ze strony klienta:
  55. <textarea rows=4 cols=45> </textarea>
  56. Uwagi ze strony Wykonawcy:
  57. <textarea rows=4 cols=45> </textarea> </br> </br>
  58.  
  59. Rodzaj usługi:
  60.  
  61. <input type=radio name=rodzaj>Usługa Płatna
  62. <input type=radio name=rodzaj>Usługa Express
  63. <input type=radio name=rodzaj>Raport do Programu
  64. <input type=radio name=rodzaj>Umowa Serwisowa
  65. <input type=radio name=rodzaj>Umowa Wdrożeniowa
  66. </br>
  67. </br>
  68. <table>
  69. <tr>
  70. <td>Opis Usługi</td>
  71. <td>Ilość</td>
  72. <td>Cena</td>
  73. <td>Wartość</td>
  74. </tr>
  75. <tr>
  76. <td><input type=text size =90></td>
  77. <td><input type=text name=ilosc size=5 value=""> </td>
  78. <td><input type=text name=cena size=5 onkeyup=licz(document.f1.ilosc,document.f1.cena,document.f1.wartosc) ></td>
  79. <td><input type=text name=wartosc size=10 readonly=readonly ></td>
  80. </tr>
  81. <tr>
  82. <td><input type=text size =90></td>
  83. <td><input name=ilosc1 type=text size=5 value=1></td>
  84. <td><input name=cena1 type=text size=5 value=0></td>
  85. <td><input name=wartosc1 type=text size=10 value=".$wartosc1."></td>
  86. </tr>
  87. <tr>
  88. <td><input type=text size =90></td>
  89. <td><input name=ilosc2 type=text size=5 value=1></td>
  90. <td><input name=cena2 type=text size=5 value=0></td>
  91. <td><input name=wartosc2 type=text size=10 value=".$wartosc2."></td>
  92. </tr>
  93. <tr>
  94. <td><input type=text size =90></td>
  95. <td><input name=ilosc3 type=text size=5 value=1></td>
  96. <td><input name=cena3 type=text size=5 value=0></td>
  97. <td><input name=wartosc3 type=text size=10 value=".$wartosc3."></td>
  98. </tr>
  99. <tr>
  100. <td><input type=text size =90></td>
  101. <td><input name=ilosc4 type=text size=5 value=1></td>
  102. <td><input name=cena4 type=text size=5 value=0></td>
  103. <td><input name=wartosc4 type=text size=10 value=".$wartosc4."></td>
  104. </tr>
  105. <tr>
  106. <td></td>
  107. <td></td>
  108. <td>Razem wartość Netto:</td>
  109. <td><input type=text size=10> </td></tr>
  110. </table>
  111.  
  112. <h6>
  113. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In gravida facilisis cursus. Cras condimentum vitae nisl vitae euismod. Praesent erat velit, ullamcorper sed odio imperdiet, suscipit scelerisque magna. Nunc in lobortis dolor. In at magna vel sem imperdiet laoreet. Donec tristique et neque euismod ultricies. Proin lacus sem, suscipit sed porta ac, aliquam et ligula. Duis suscipit tincidunt orci, euismod tempus libero feugiat non. Integer mollis enim arcu, et ultricies dolor interdum a. Fusce ut pretium nibh.
  114. </h6>
  115. </h4></center>";
  116.  
  117. ?>
  118. </form>


Niestety, pokazuje błąd:

Parse error: syntax error, unexpected '"> </td> ' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';' in C:\xampp\htdocs\potwierdzenie\system\form.php on line 86

Gdzie popełniłem błąd?
Wiem, że usunąłem '+' i sleshe przed dziobkami, ale nigdy wczesniej sie nie spotkalem z taka skladnia, a wtedy rowniez byly bledy... ;/
com
jak wrzucasz do "" to bez .. po pierwsze , ewentualnie {$zmienna}
amdziak
Doszedłe, do momentu, że nie pokazuje mi się już ten błąd(usunąłem średniki z

  1. value=


Ale niestety nie działa, tj: wpisuje wartości w oba pola i się nic nie dzieje...
com
o jakim Ty fragmencie mówisz?
amdziak
Cytat(com @ 8.01.2014, 00:11:40 ) *
jak wrzucasz do "" to bez .. po pierwsze , ewentualnie {$zmienna}


chodzi, żeby dawać zamiast value="", to value=
questionmark.gif

mowie o lini 78
com
  1. ...
  2. <td><input name=wartosc1 type=text size=10 value="$wartosc1"></td>
  3. ...

albo
  1. ...
  2. <td><input name=wartosc1 type=text size=10 value="{$wartosc1}"></td>
  3. ...


a resztę sobie popraw wink.gif
amdziak
tylko, że tego fragmentu kodu, który zacytowałeś jeszcze nie przerabiałem, chodzi mi o ten fragment:

  1. <tr>
  2. <td><input type=text size =90></td>
  3. <td><input type=text name=ilosc size=5 value=""> </td>
  4. <td><input type=text name=cena size=5 onkeyup=licz(document.f1.ilosc,document.f1.cena,document.f1.wartosc) ></td>
  5. <td><input type=text name=wartosc size=10 readonly=readonly ></td>
  6. </tr>


w nim nie działa wyświetlanie/wyliczanie wartości.
com
błąd masz przecież tu : Parse error: syntax error, unexpected '"> </td> ' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';' in C:\xampp\htdocs\potwierdzenie\system\form.php on line 86
amdziak
Tego błędy już się pozbyłem wcześniej...
Formularz normalnie się wyświetla w przeglądarce, ale po wpisaniu wartości cena i ilość, nie jest wyliczane pole wartość...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.