Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Kalkulator w php
Forum PHP.pl > Forum > Przedszkole
djjbenus
Witam,

pisze kalkulator w php za pomocą formularza.

  1. <html>
  2. <head>
  3. <title>Kalkulator
  4. </title>
  5. </head>
  6. <body>
  7. <div id="">
  8. <form action="kalkulator.php" method="POST">
  9. <input type="text" name="model" title="wynik" size="12" value="0"/> <br /><br />
  10. <input class="submit" type="submit" name="submit" value="1" />
  11. <input class="submit" type="submit" name="submit" value="2" />
  12. <input class="submit" type="submit" name="submit" value="3" />
  13. <input class="submit" type="submit" name="submit" value="+" /> <br />
  14. <input class="submit" type="submit" name="submit" value="4" />
  15. <input class="submit" type="submit" name="submit" value="5" />
  16. <input class="submit" type="submit" name="submit" value="6" />
  17. <input class="submit" type="submit" name="submit" value="-" /> <br />
  18. <input class="submit" type="submit" name="submit" value="7" />
  19. <input class="submit" type="submit" name="submit" value="8" />
  20. <input class="submit" type="submit" name="submit" value="9" />
  21. <input class="submit" type="submit" name="submit" value="*" /> <br />
  22. <input class="submit" type="submit" name="submit" value=" , " />
  23. <input class="submit" type="submit" name="submit" value="0" />
  24. <input class="submit" type="submit" name="submit" value="=" />
  25. <input class="submit" type="submit" name="submit" value="/" />
  26. </form>
  27. </div>
  28. </body>
  29. </html>


Teraz mój problem. Otóż jak przekazać wartość przycisku do pola tekstowego na górze zarazem wykonując działania?

Z góry dzięki.
piotrex41
Zmieniaj wartość value, np. value="<?= $zmienna ?>", tylko musisz ją mieć w tym samym pliku u góry, i jeśli wykonasz jakieś działanie, to przypisz do tej zmiennej wartość i Ci ją wyświetli, daj IFa, że jeśli nie nadpiszesz zmiennej niczym to automatycznie pokaże zero.
peter13135
Jak można pisać kalklulator w php za pomocą formularza ? tongue.gif

Kod
<input class="submit" type="submit" name="submit" value="2" />

Te pola powinieneś generować w pętli

Cytat
Teraz mój problem. Otóż jak przekazać wartość przycisku do pola tekstowego na górze zarazem wykonując działania?


Za pomocą JS/jQuery.

robisz event onClick (w js) / click (w jquery) który odpala funkcję, która pobiera wartość przyciśniętego buttona i ustawia jakąś tam wartość w innym elemencie.
W js na pewno użyjesz funkcji getElementById() lub pokrewnej (byName, czy byClass)
djjbenus
Coś w tym stylu:

  1. <html>
  2. <head>
  3. <title>Kalkulator
  4. </title>
  5. </head>
  6. <body>
  7. <?
  8. $zmienna=0;
  9. ?>
  10. <div id="">
  11. <form action="kalkulator.php" method="POST">
  12. <input type="text" name="model" title="wynik" size="18" value="<?= $zmienna ?>"/> <br /><br />
  13. <input class="submit" type="submit" name="submit" value="<?= $zmienna=1 ?>" />
  14. <input class="submit" type="submit" name="submit" value="<?= $zmienna=2 ?>" />
  15. <input class="submit" type="submit" name="submit" value="<?= $zmienna=3 ?>" />
  16. <input class="submit" type="submit" name="submit" value="<?= $zmienna+ ?>" /> <br />
  17. <input class="submit" type="submit" name="submit" value="<?= $zmienna=4 ?>" />
  18. <input class="submit" type="submit" name="submit" value="<?= $zmienna=5 ?>" />
  19. <input class="submit" type="submit" name="submit" value="<?= $zmienna=6 ?>" />
  20. <input class="submit" type="submit" name="submit" value="<?= $zmienna- ?>" /> <br />
  21. <input class="submit" type="submit" name="submit" value="<?= $zmienna=7 ?>" />
  22. <input class="submit" type="submit" name="submit" value="<?= $zmienna=8 ?>" />
  23. <input class="submit" type="submit" name="submit" value="<?= $zmienna=9 ?>" />
  24. <input class="submit" type="submit" name="submit" value="<?= $zmienna* ?>" /> <br />
  25. <input class="submit" type="submit" name="submit" value="<?= $zmienna, ?>" />
  26. <input class="submit" type="submit" name="submit" value="<?= $zmienna=0 ?>" />
  27. <input class="submit" type="submit" name="submit" value="<?= $zmienna= ?>" />
  28. <input class="submit" type="submit" name="submit" value="<?= $zmienna/ ?>" />
  29. </form>
  30. </div>
  31. </body>
  32. </html>


?
peter13135
Nie.
djjbenus
Akurat ma to być napisane w php. Formularz to mój pomysł. Zatem jak to poprawić?
piotrex41
Raczej w tym stylu. Ale jak wykonasz równanie, to musisz nadpisać wartość dla tej zmiennej, żeby wyświetlił się wynik.
  1. <?php
  2. $zmienna = 0;
  3. ?>
  4.  
  5. <html>
  6. <head>
  7. <title>Kalkulator
  8. </title>
  9. </head>
  10. <body>
  11. <div id="">
  12. <form action="kalkulator.php" method="POST">
  13. <input type="text" name="model" title="wynik" size="12" value="<?= $zmienna ?>"/> <br /><br />
  14. <input class="submit" type="submit" name="submit" value="1" />
  15. <input class="submit" type="submit" name="submit" value="2" />
  16. <input class="submit" type="submit" name="submit" value="3" />
  17. <input class="submit" type="submit" name="submit" value="+" /> <br />
  18. <input class="submit" type="submit" name="submit" value="4" />
  19. <input class="submit" type="submit" name="submit" value="5" />
  20. <input class="submit" type="submit" name="submit" value="6" />
  21. <input class="submit" type="submit" name="submit" value="-" /> <br />
  22. <input class="submit" type="submit" name="submit" value="7" />
  23. <input class="submit" type="submit" name="submit" value="8" />
  24. <input class="submit" type="submit" name="submit" value="9" />
  25. <input class="submit" type="submit" name="submit" value="*" /> <br />
  26. <input class="submit" type="submit" name="submit" value=" , " />
  27. <input class="submit" type="submit" name="submit" value="0" />
  28. <input class="submit" type="submit" name="submit" value="=" />
  29. <input class="submit" type="submit" name="submit" value="/" />
  30. </form>
  31. </div>
  32. </body>
  33. </html>
djjbenus
Po kliknięciu na klawisze nic się nie zmienia.... Czegoś nie rozumiem czy czegoś brakuje?
piotrex41
Ahh to tobie chodzi o zupełnie coś innego. Chcesz zrobić coś takiego jak kalkulator windows w PHP, to musisz albo zczytywać każdy wciśnięty przycisk w php i go dopisywać, albo (co jest lepszym rozwiązaniem) obsłużyć to w javascripcie (jQuery). Przyda Ci się do tego click, innerHTML i nie wiem czy coś jeszcze - są to funkcje jQuery.
djjbenus
No mi chodzi o to aby ten formularz działał jak prosty kalkulator. Tylko nie bardzo wiem w jaki sposób później wykonywać działania i przypisania do tej zmiennej. "Chcesz zrobić coś takiego jak kalkulator windows w PHP, to musisz albo zczytywać każdy wciśnięty przycisk w php" otóż to smile.gif
piotrex41
Tu masz mój bardzo banalny kalkulator w PHP, pisany obiektowo (mój pierwszy obiektowy skrypt, pisany jakoś 16 miesięcy temu). Może coś skorzystasz.
  1. <?php
  2.  
  3. class Calc
  4. {
  5. protected
  6. $input,
  7. $input2,
  8. $option,
  9. $error,
  10. $output;
  11.  
  12. public function setInputs($int1, $int2)
  13. {
  14. $this->input = (int) $int1;
  15. $this->input2 = (int) $int2;
  16. }
  17.  
  18. public function selectOption($option)
  19. {
  20. $this->option = $option;
  21. switch ($this->option)
  22. {
  23. case 'Dodaj':
  24. $this->dodaj();
  25. break;
  26. case 'Odejmij':
  27. $this->odejmij();
  28. break;
  29. case 'Pomnóż':
  30. $this->mnoz();
  31. break;
  32. case 'Podziel':
  33. $this->dziel();
  34. break;
  35. }
  36. }
  37.  
  38. protected function dodaj()
  39. {
  40. $this->output = $this->input + $this->input2;
  41. }
  42.  
  43. protected function odejmij()
  44. {
  45. $this->output = $this->input - $this->input2;
  46. }
  47.  
  48. protected function mnoz()
  49. {
  50. $this->output = $this->input * $this->input2;
  51. }
  52.  
  53. protected function dziel()
  54. {
  55. if ($this->input2 != 0)
  56. {
  57. $this->output = $this->input / $this->input2;
  58. }
  59. else
  60. {
  61. $this->error('dziel_zero');
  62. }
  63. }
  64.  
  65. public function getOutput()
  66. {
  67. return $this->output;
  68. }
  69.  
  70. protected function error($str)
  71. {
  72. $this->error = $str;
  73. if ($this->error == 'dziel_zero')
  74. {
  75. echo 'Wystąpił błąd! Nie można dzielć przez zero!';
  76. }
  77. }
  78. }
  79.  
  80. $oop = new Calc();
  81. $oop->setInputs($_POST['int1'], $_POST['int2']);
  82. $oop->selectOption($_POST['option']);
  83. $wynik = $oop->getOutput();
  84.  
  85. ?>
  86.  
  87. <form method="post" action="calc.php">
  88. <input type="text" name="int1" />
  89. <input type="text" name="int2" />
  90. <select name="option">
  91. <option>Dodaj</option>
  92. <option>Odejmij</option>
  93. <option>Pomnóż</option>
  94. <option>Podziel</option>
  95. </select>
  96. <input type="submit" value="Wykonaj" />
  97. </form>
  98.  
  99. Wynik: <input type="text" value="<?= $wynik ?>" readonly />


@EDIT:
Mój się nie zachowuje jak windowsowy, bo nie pokazuje na bieżąco co się wykonuje, ale przynajmniej przekazuje wartość końcową (wynik).
PanOrienT
Mój pierwszy kalkulator w php wyglądał tak ( akurat wtedy ćwiczyłem funkcje jak i include). Oparty na HTML-u.

index.php
  1. <html>
  2. <body>
  3. <form action="oblicz.php" method="post">
  4. Podaj Liczbe a: <input type="text" name="liczbaa" size="5"><br />
  5. Podaj Liczbe b: <input type="text" name="liczbab" size="5" ><br />
  6. Wpisz Liczbe od 1 do 5 <input type="text" name="liczbakoncowa" size="3"><br />
  7. 1. Dodawanie <br />
  8. 2. Odejmowanie <br />
  9. 3. Mnożenie <br />
  10. 4. Dzielenie
  11. <input type="submit" value="wyslij" >
  12. </body>
  13. </html>


oblicz.php
  1. <?php
  2. include('funkcje.php');
  3.  
  4. $liczbaa = $_POST['liczbaa'];
  5. $liczbab = $_POST['liczbab'];
  6. $lk = $_POST['liczbakoncowa'];
  7.  
  8. if ($lk == 1) {
  9. dodawanie($liczbaa, $liczbab);
  10. }
  11. elseif ($lk == 2) {
  12. odejmowanie($liczbaa, $liczbab);
  13. }
  14. elseif ($lk == 3) {
  15. mnozenie($liczbaa, $liczbab);
  16. }
  17. elseif ($lk == 4) {
  18. dzielenie($liczbaa, $liczbab);
  19. }
  20. else {
  21. echo "Zly wybor";
  22. }
  23. ?>

oraz funkcje.php
  1. <?php
  2.  
  3.  
  4. function dodawanie($liczbaa, $liczbab) {
  5. $wynik = $liczbaa+$liczbab;
  6. echo $wynik;
  7. }
  8.  
  9. function odejmowanie($liczbaa, $liczbab) {
  10. $wynik = $liczbaa-$liczbab;
  11. echo $wynik;
  12. }
  13.  
  14. function mnozenie($liczbaa, $liczbab) {
  15. $wynik = $liczbaa*$liczbab;
  16. echo $wynik;
  17. }
  18.  
  19. function dzielenie($liczbaa, $liczbab) {
  20. $wynik = $liczbaa/$liczbab;
  21. echo $wynik;
  22. }
  23. ?>
  24.  



Dałoby radę to łatwiej zrobić ale ja akurat w celu ćwiczeń oraz zrozumieniu pojęcia funkcji wink.gif
djjbenus
Wszystko ładnie pięknie tyle że nie wyświetla tego wyniku w polu tekstowym.
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.