Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zmienne sesji w funkcji for
Kasper5
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.07.2015

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


Czesc
Jestem tutaj nowy wiec prosze o wyrozumiałość (IMG:style_emoticons/default/smile.gif) Mam problem z koszykiem na zakupy. Szukałem w internecie i na forum ale nic nie znalazłem tylko same definicje. A prosiłbym o pomoc i wyjaśnienie. Mam tak zdefiniwane sesje:

  1.  
  2.  
  3. if (!isset($_SESSION['koszyk'])) {
  4. $_SESSION['koszyk'] = array();
  5. }
  6.  
  7. /* inicjuje zmienna */
  8. if(empty($_SESSION['powierzchnia'])){
  9. $_SESSION['powierzchnia'] = 0;
  10. }
  11. if(isset($_GET['zapiszPowierzchnie'])){
  12. /* przetwarza dane formularza powierzchni */
  13. $_SESSION['powierzchnia'] = floatVal($_POST['powierzchnia']);
  14. }


oraz tak wyświetla mi się koszyk:
  1. <?php
  2. $suma = 0;
  3. $powierzchnia = 1;
  4. if($_SESSION['powierzchnia']>0){
  5. $powierzchnia = $_SESSION['powierzchnia'];
  6. }
  7.  
  8.  
  9. for ($i=0;$i < count($_SESSION['koszyk']); $i++)
  10. {
  11. echo '<tr>';
  12. echo '<td>'.$towary[$_SESSION['koszyk'][$i]].'</td>';
  13. echo '<td align="right">';
  14. echo $powierzchnia.' m<sup>2</sup> x '.number_format ($ceny[$_SESSION['koszyk'][$i]],2);
  15. echo ' zlotych</td>';
  16.  
  17. ?>
  18. <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>?zapiszPowierzchnie=1">
  19. <td><input type="text" name="powierzchnia" id="powierzchnia" value="<?=htmlspecialchars($_SESSION['powierzchnia'][$i]); ?>"></td>
  20. <td><input type="submit" value="Zapisz"></td>
  21. </form>
  22.  
  23. <?php
  24.  
  25. $suma = $suma + ($ceny[$_SESSION['koszyk'][$i]]* $powierzchnia );
  26. }
  27. ?>


i powiem że to mi działa jak zmieniam ilość ale zmienia ilość dla wszystkich pól nie dla konkretnego rekordu i w tym mam problem. Jak zrobić by mi zmieniało tylko pole w którym zmieniłem wartość. Na zdjęciu pokazuje co mi wyświetla

http://zapodaj.net/2a9d03c72ce00.jpg.html
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kasper5
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.07.2015

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


prz3kus chyba jeszcze nie o to mi chodzi. Głównie chodzi mi o możliwość zmieniania ilości w koszyku w danym wierszu osobno. Czyli: mam w koszyku 3 artykuły i obok pierwszego jest okienko formularza i jak wpisze w nie ilość i zapisz to zmieni się ilość tylko w tym pierwszym wierszu. Doprowadziłem kod do takiej postaci ale niestety tylko zmienia mi wartość we wszystkich polach na raz nie pojedynczo tak jak chce.

  1. <?php
  2.  
  3. /* inicjuje zmienna */
  4. if(empty($_SESSION['powierzchnia'])){
  5. $_SESSION['powierzchnia'] = 0;
  6. }
  7. if(isset($_GET['zapiszPowierzchnie'])){
  8. /* przetwarza dane formularza powierzchni */
  9. $_SESSION['powierzchnia'] = floatVal($_POST['powierzchnia']);
  10. }
  11.  
  12.  
  13. if (!isset($_SESSION['koszyk'])) {
  14. $_SESSION['koszyk'] = array();
  15. }
  16.  
  17. if (isset($_GET['reset'])) //chcemy wyczyścić koszyk
  18. {
  19. unset($_SESSION['koszyk']);
  20. header('location: '. $_SERVER['PHP_SELF']. '?'. SID);
  21. exit();
  22. }
  23. ?>
  24.  
  25. <!DOCTYPE html>
  26. <html>
  27. <head>
  28. <meta charset="UTF-8">
  29. <title>Firma budowlana </title>
  30. </head>
  31. <body>
  32. <h1>Twoj koszyk z zakupami</h1>
  33.  
  34.  
  35.  
  36. <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>?zapiszPowierzchnie=1">
  37. <input type="text" name="powierzchnia" id="powierzchnia" value="<?=htmlspecialchars($_SESSION['powierzchnia']); ?>">
  38. <input type="submit" value="Zapisz">
  39. </form>
  40.  
  41. <?php
  42.  
  43. // definicja tablic z towarami oraz cenami
  44.  
  45.  
  46. $i= isset($_GET['i']) ? (int)$_GET['i'] : 0;
  47.  
  48.  
  49. $q = mysql_connect('localhost','root','haslo') or
  50. die('Padl serwer');
  51. $q = mysql_select_db('stronaphp') or die('Padla baza');
  52.  
  53.  
  54. $wynik = mysql_query("SELECT ID, Nazwa_uslugi, Cena_za_metr FROM cennik_uslug")
  55. or die('Błąd zapytania');
  56.  
  57.  
  58.  
  59. $towary = array();
  60. $ceny = array();
  61. while ($row = mysql_fetch_array($wynik))
  62. {
  63. $towary[$row['ID']]=$row['Nazwa_uslugi'];
  64. $ceny[$row['ID']]=$row['Cena_za_metr'];
  65. }
  66. ?>
  67.  
  68. <table border="1">
  69. </thead>
  70. <tr>
  71.  
  72. <th>Nazwa usługi</th>
  73. <th>Cena za metr</th>
  74. </tr>
  75. </thead>
  76. <tbody>
  77.  
  78.  
  79.  
  80. <?php
  81. $suma = 0;
  82. $powierzchnia = 1;
  83. if($_SESSION['powierzchnia']>0){
  84. $powierzchnia = $_SESSION['powierzchnia'];
  85. }
  86. for ($i=0;$i < count($_SESSION['koszyk']); $i++)
  87. {
  88. echo '<tr>';
  89. echo '<td>'.$towary[$_SESSION['koszyk'][$i]].'</td>';
  90. echo '<td align="right">';
  91. echo $powierzchnia.' m<sup>2</sup> x '.number_format ($ceny[$_SESSION['koszyk'][$i]],2);
  92. echo ' zlotych</td></tr>';
  93. $suma = $suma + ($ceny[$_SESSION['koszyk'][$i]] * $powierzchnia);
  94. }
  95. ?>
  96.  
  97.  
  98. </tbody>
  99. <tfoot>
  100. <tr>
  101. <th align="right">Naleznosc: </th><br>
  102. <th align="right"><?php echo number_format($suma,2); ?> zlotych.</th>
  103. </tr>
  104. </tfoot>
  105. </table>
  106.  
  107. <p><a href="towary.php">Kupuj dalej</a> lub też: <a href="<?php echo $_SERVER['PHP_SELF']; ?>?reset=1">Wyczysc swoj koszyk</a></p>
  108. </body>
  109. </html>


na prawdę nikt nie potrafi mi pomóc? męczę manuale ale nic mi nie wychodzi
Go to the top of the page
+Quote Post

Posty w temacie
- Kasper5   Zmienne sesji w funkcji for   20.07.2015, 06:03:20
- - Pyton_000   Zmień Kodname="powierzchnia" na Kodname=...   20.07.2015, 07:28:19
|- - Kasper5   Cytat(Pyton_000 @ 20.07.2015, 08:28:1...   20.07.2015, 09:14:59
- - Pyton_000   No oczywiście że po zmianie tylko tego nie będzie ...   20.07.2015, 09:58:28
|- - Kasper5   Cytat(Pyton_000 @ 20.07.2015, 10:58:2...   21.07.2015, 03:21:26
- - prz3kus   No to wystarczy odebrać dane: [PHP] pobierz, plain...   21.07.2015, 07:06:25
- - Kasper5   prz3kus chyba jeszcze nie o to mi chodzi. Głównie ...   22.07.2015, 18:39:05
- - Pyton_000   Przecież wcześniej miałeś dobrze. Teraz masz 1 for...   22.07.2015, 22:04:09
- - Kasper5   Pokazuje mi taki błąd: Warning: Cannot use a scala...   23.07.2015, 04:30:17
- - Pyton_000   Kodname="powierzchnia" i Kod<input typ...   23.07.2015, 06:52:48
|- - Kasper5   Cytat(Pyton_000 @ 23.07.2015, 07:52:4...   23.07.2015, 16:38:44
- - Pyton_000   śmiem twierdzić że dokonałeś zmian jakie napisałem...   23.07.2015, 16:41:38
- - herbhouse666   Poradziłeś już sobie czy dalej potrzebujesz pomocy...   23.07.2015, 18:31:09
|- - Kasper5   Cytat(herbhouse666 @ 23.07.2015, 19:31...   23.07.2015, 19:13:36
- - herbhouse666   Daj mi cały kod na e-mail to postaram się to napra...   23.07.2015, 19:25:23
|- - Kasper5   Cytat(herbhouse666 @ 23.07.2015, 20:25...   23.07.2015, 19:36:15
- - ctom   @Kasper5 zobacz co robisz w linii 11 a potem co r...   23.07.2015, 19:29:39
- - herbhouse666   Nie dotarła. Spróbuj jeszcze raz. themoscow666@gma...   23.07.2015, 19:41:30


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

 



RSS Aktualny czas: 14.10.2025 - 09:29