Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z tworzeniem tablicy
Marco1357
post 17.01.2023, 16:11:50
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 17.01.2023

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


Witam. Mam problem programistyczny. Chcę utworzyć program kalkulator w php.Program składa się z dwóch plików. Pierwszy plik to kalkulator.php, a drugi to kalk.php. W pliku kalkulator.php są przyciski, które są oddzielnymi formularzami. Po naciśnięciu przycisku formularza przenoszeni jesteśmy do pliku kalk.php i gdzie zależnie od wciśniętego przycisku
tworzona jest tablica z kolejną cyfrą. Następnie cyfry są wyświetlane przez plik kalkulator.php. Niestety po każdym wciśniętym przycisku tablica się zeruje i pokazuje tylko jedną, ostatnią cyfrę zamiast dodawać kolejne elementy do tej tablicy i wtedy wyświetlać.
Oto pliki:

kalk.php

  1. <?php
  2. if (isset($_GET['wynik']) ) {
  3. $liczby = array();
  4.  
  5.  
  6. if ($_GET['wynik'] == "1") {
  7. array_push($liczby, "1");
  8.  
  9.  
  10.  
  11. } if ($_GET['wynik'] == "2") {
  12. array_push($liczby, "2");
  13. }
  14.  
  15. } else {
  16. echo "wybierz stronę!";
  17. }
  18.  
  19. include 'kalkulator.php';
  20.  
  21. ?>



kalkulator.php

  1. <?php
  2. require_once ('kalk.php');
  3.  
  4. ?>
  5.  
  6. <!DOCTYPE html>
  7. <html>
  8. <head>
  9. <meta charset='utf-8'>
  10. <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  11. <title>KALKULATOR</title>
  12. <meta name='viewport' content='width=device-width, initial-scale=1'>
  13. <link rel='stylesheet' type='text/css' media='screen' href='main1.css'>
  14. <script src='main.js'></script>
  15. </head>
  16. <body>
  17.  
  18.  
  19. <table class="tabela">
  20. <tr>
  21. <td colspan="4" class="wyswietlacz">
  22. Działanie: <?php
  23. foreach ($liczby as $cyfra) {
  24. echo $cyfra;
  25. } ?>
  26. <br>
  27. Wynik:
  28.  
  29. </td>
  30. </tr>
  31.  
  32. <tr>
  33.  
  34. <td>
  35. <form action="kalk.php" method="get">
  36. <input type=submit value="1" class="input"/>
  37. <input type="hidden" name="wynik" value= "1" />
  38.  
  39. </form>
  40. </td>
  41.  
  42. <td>
  43. <form action="kalk.php" method="get">
  44. <input type=submit value="2" class="input"/>
  45. <input type="hidden" name="wynik" value="2" />
  46. </form>
  47. </td>
  48.  
  49. <td>
  50. <form action="kalk.php" method="get">
  51. <input type=submit value="3" class="input"/>
  52. <input type="hidden" name="wynik" value="3" ?>
  53. </form>
  54. </td>
  55.  
  56. <td>
  57. <form action="kalk.php" method="get">
  58. <input type=submit value="C" class="input"/>
  59. <input type="hidden" name="wynik" value="C" ?>
  60. <input type="hidden" name="zn" value="kasowanie"/>
  61. </form>
  62. </td>
  63.  
  64. </tr>
  65.  
  66. <tr>
  67.  
  68. <td>
  69. <form action="kalk.php" method="get">
  70. <input type=submit value="4" class="input"/>
  71. <input type="hidden" name="wynik" value="4" ?>
  72. </form>
  73. </td>
  74.  
  75. <td>
  76. <form action="kalk.php" method="get">
  77. <input type=submit value="5" class="input"/>
  78. <input type="hidden" name="wynik" value="5" ?>
  79. </form>
  80. </td>
  81.  
  82. <td>
  83. <form action="kalk.php" method="get">
  84. <input type=submit value="6" class="input"/>
  85. <input type="hidden" name="wynik" value="6" ?>
  86. </form>
  87. </td>
  88.  
  89. <td>
  90. <form action="kalk.php" method="get">
  91. <input type=submit value="-" class="input"/>
  92. <input type="hidden" name="wynik" value="-" ?>
  93. <input type="hidden" name="zn" value="minus"/>
  94. </form>
  95. </td>
  96.  
  97. </tr>
  98. <tr>
  99. <td>
  100. <form action="kalk.php" method="get">
  101. <input type=submit value="7" class="input"/>
  102. <input type="hidden" name="wynik" value="7" ?>
  103. </form>
  104. </td>
  105.  
  106. <td>
  107. <form action="kalk.php" method="get">
  108. <input type=submit value="8" class="input"/>
  109. <input type="hidden" name="wynik" value="8" ?>
  110. </form>
  111. </td>
  112.  
  113.  
  114. <td>
  115. <form action="kalk.php" method="get">
  116. <input type=submit value="9" class="input"/>
  117. <input type="hidden" name="wynik" value="9" ?>
  118. </form>
  119. </td>
  120. <td>
  121.  
  122. <form action="kalk.php" method="get">
  123. <input type=submit value="+" class="input"/>
  124. <input type="hidden" name="wynik" value="+" ?>
  125. <input type="hidden" name="zn" value="plus"/>
  126. </form>
  127.  
  128. </td>
  129. </tr>
  130.  
  131. <tr>
  132. <td>
  133. <form action="kalk.php" method="get">
  134. <input type=submit value="." class="input"/>
  135. <input type="hidden" name="wynik" value="." ?>
  136. </form>
  137.  
  138.  
  139. </td>
  140.  
  141. <td>
  142. <form action="kalk.php" method="get">
  143. <input type=submit value="/" class="input"/>
  144. <input type="hidden" name="wynik" value="/" ?>
  145. <input type="hidden" name="zn" value="dzielenie"/>
  146. </form>
  147.  
  148.  
  149.  
  150. </td>
  151.  
  152. <td>
  153. <form action="kalk.php" method="get">
  154. <input type=submit value="0" class="input"/>
  155. <input type="hidden" name="wynik" value="0" ?>
  156. </form>
  157. </td>
  158.  
  159. <td>
  160. <form action="kalk.php" method="get">
  161. <input type=submit value="=" class="input"/>
  162. <input type="hidden" name="wynik" value="=" ?>
  163. <input type="hidden" name="zn" value="rowna"/>
  164. </form>
  165. </td>
  166.  
  167.  
  168. </tr>
  169. <tr>
  170. <td>
  171. <form action="kalk.php" method="get">
  172. <input type=submit value="*" class="input"/>
  173. <input type="hidden" name="wynik" value="*" ?>
  174. <input type="hidden" name="zn" value="mnozenie"/>
  175. </form>
  176. </td>
  177.  
  178. <td>
  179. <form>
  180. <input type=submit value=" " class="input"/>
  181.  
  182. </form>
  183. </td>
  184.  
  185. <td>
  186. <form>
  187. <input type=submit value=" " class="input"/>
  188.  
  189. </form>
  190. </td>
  191.  
  192. <td>
  193. <form>
  194. <input type=submit value=" " class="input"/>
  195.  
  196. </form>
  197. </td>
  198.  
  199.  
  200. </tr>
  201.  
  202. </table>
  203.  
  204. </body>
  205. </html>
  206. </html>




main1.css



  1. .tabela {
  2. padding:0;
  3. border:1px solid black;
  4.  
  5. }
  6.  
  7. tr {
  8. padding: 3px;
  9.  
  10.  
  11. }
  12.  
  13. td {
  14. padding: 3px;
  15.  
  16. }
  17.  
  18. .input{
  19. width:40px;
  20. height:40px;
  21. background-color: blue;
  22. border:0;
  23. color:white;
  24. font-size:20px;
  25. border-radius:5px;
  26. }
  27.  
  28. input:hover {
  29. background-color:purple;
  30.  
  31. }
  32.  
  33. .wyswietlacz{
  34. height:40px;
  35. padding:5px;
  36. background-color: rgb(93, 93, 214);
  37. color:white;
  38. font-size:15px;
  39.  
  40.  
  41. }


Ten post edytował Marco1357 17.01.2023, 16:41:41
Go to the top of the page
+Quote Post
nospor
post 17.01.2023, 17:52:32
Post #2





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




Jesli chcesz przechowywac dane miedzy kolejnym stronami, to musisz trzymac je w sesji.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Marco1357
post 19.01.2023, 16:52:10
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 17.01.2023

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


Cytat(nospor @ 17.01.2023, 17:52:32 ) *
Jesli chcesz przechowywac dane miedzy kolejnym stronami, to musisz trzymac je w sesji.


Niestety dodanie sesji nie pomogło. Problem się powtarza. Słyszałem ze submit formularza resetuje tablice. Pomóżcie?


  1. <?php
  2. if (isset($_GET['wynik']) ) {
  3. $liczby = array();
  4.  
  5.  
  6. if ($_GET['wynik'] == "1") {
  7. array_push($liczby, "1");
  8.  
  9.  
  10.  
  11. } if ($_GET['wynik'] == "2") {
  12. array_push($liczby, "2");
  13. }
  14. }
  15. include 'kalkulator.php';
Go to the top of the page
+Quote Post
nospor
post 19.01.2023, 16:55:24
Post #4





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




W kodzie co pokazales nadal nigdzie nie dodajesz nic do sesji

Zeby zapisac cos do sesji to sie to robi w $_SESSION. Samo wystartowanie sesji nie rozwiazuje twojego problemu


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Marco1357
post 19.01.2023, 17:24:39
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 17.01.2023

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


Cytat(nospor @ 19.01.2023, 16:55:24 ) *
W kodzie co pokazales nadal nigdzie nie dodajesz nic do sesji

Zeby zapisac cos do sesji to sie to robi w $_SESSION. Samo wystartowanie sesji nie rozwiazuje twojego problemu


czy o to chodziło? Niestety problem jest cały czas.

Plik kalk.php
  1.  
  2. <?php
  3. if (isset($_GET['wynik']) ) {
  4. $liczby = array();
  5.  
  6.  
  7. if ($_GET['wynik'] == "1") {
  8. $liczby[]="1";
  9.  
  10.  
  11.  
  12. } if ($_GET['wynik'] == "2") {
  13. $liczby[]="2";
  14. }
  15.  
  16. } else {
  17. echo "wybierz stronę!";
  18. }
  19.  
  20. $_SESSION = $liczby;
  21.  
  22.  


Urywek pliku kalkulator.php
  1. <tr>
  2. <td colspan="4" class="wyswietlacz">
  3. Działanie: <?php
  4. foreach ($_SESSION as $cyfra){
  5. echo $cyfra;
  6. }
  7. ?>
  8. <br>
  9. Wynik:<br>
  10.  
  11. </td>
  12. </tr>
  13.  
  14.  
Go to the top of the page
+Quote Post
viking
post 19.01.2023, 17:31:32
Post #6





Grupa: Zarejestrowani
Postów: 6 366
Pomógł: 1115
Dołączył: 30.08.2006

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


https://www.php.net/session_start
Przeczytaj choć urywek dokumentacji. Masz na stronie podane jak dodać coś do sesji.


--------------------
Go to the top of the page
+Quote Post
Marco1357
post 23.01.2023, 17:54:46
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 17.01.2023

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


Cytat(viking @ 19.01.2023, 17:31:32 ) *
https://www.php.net/session_start
Przeczytaj choć urywek dokumentacji. Masz na stronie podane jak dodać coś do sesji.


Dzięki, czytanie dokumentacji pomogło. Oto kod:

  1.  
  2. <?php
  3. if (isset($_GET['wynik']) ) {
  4.  
  5.  
  6. if ($_GET['wynik'] == "1") {
  7. $_SESSION['jeden']= $_GET['wynik'];
  8. }
  9.  
  10. if ($_GET['wynik'] == "2") {
  11. $_SESSION['dwa']= $_GET['wynik'];
  12. }
  13.  
  14. if ($_GET['wynik'] == "3") {
  15. $_SESSION['trzy']= $_GET['wynik'];
  16. }
  17.  
  18. if ($_GET['wynik'] == "4") {
  19. $_SESSION['cztery']= $_GET['wynik'];
  20. }
  21.  
  22.  
  23. } else {
  24. echo "wybierz stronę!";
  25. }
  26.  
  27.  
  28. var_dump($_SESSION);
  29. include 'kalkulator.php';
  30.  
  31. ?>
  32.  
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 Wersja Lo-Fi Aktualny czas: 10.06.2024 - 22:28