Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dodawanie zmiennych ?
Forum PHP.pl > Forum > Przedszkole
piotr485
Witam Serdecznie, piszę skrypt który generuje kod html.

Chciałbym tam sobie dodawac produkty, ale nie gdzies do bazy tylko na czas pisania wiec wszysko przechowuje sobie w GETcie.

Może napiszę przykład:

  1. $produkt_tytul = nazwa produktu
  2. $produkt_opis = jakis opis
  3. $produkt_cena = 200zl
  4.  
  5. //wyswietlam sobie moj produkt czyli
  6.  
  7. <div>
  8. Nazwa produktu to '.$produkt_tytul.'<br />
  9. Opis to '.$produkt_opis.', Cena '.$produkt_cena.'
  10. </div>
  11. ';


To jest moj tak jakby szablon dla produktu pierwszego i nigdy nie wiem ile bede chcial stworzyc produktow, dlatego chcialbym stworzyc przycisk "dodaj nowy produkt" jak w ktory klikne to pojawią mi się nowe inputy (puste pola) w ktore bede dodac produkt i nie chce zeby te pola znikaly na czas pisania musza zostac i to co w nich wpisane.

Jak to wykonac ? Moglbym zrobic recznie np. 4 produkty zawsze by bylo trzeba dodac i bym nazwal
  1. $produkt_tytul_02 = nazwa produktu
  2. $produkt_opis_02 = jakis opis
  3. $produkt_cena_02 = 200zl

itd. ale chcialbym aby po kliknieciu w przycisk dodawaly sie tak jakby nowe zmienne czy jakos innaczej - nie mam pojecia jak to wykonac nigdy czegos takiego nie robilem - jakies podpowiedzi - nakierowania ?

Z góry dziekuje i pozdrawiam
thek
Najszybciej będzie Ci to na sesjach zrobić. Wtedy do tablicy sesyjnej będziesz wkładał wybrane produkty. To lepsze niż liczyć na szczęście, że Ci się to w długim url zmieści (GET ma limit znaków, bodajże 256)
piotr485
Cytat(thek @ 10.09.2009, 13:31:03 ) *
Najszybciej będzie Ci to na sesjach zrobić. Wtedy do tablicy sesyjnej będziesz wkładał wybrane produkty. To lepsze niż liczyć na szczęście, że Ci się to w długim url zmieści (GET ma limit znaków, bodajże 256)


Limit ? To jakim cudem mi to wszystko pamieta ? Przetestowalem na jakies 1000znakow i bez problemu - ktos pomoze ?
kfc4
Sesje. Na początku skryptu dajesz
Później sprawdzasz czy istnieje zmienna sesyjna, jak nie to ją tworzysz
  1. if (!isset($_SESSION['tablica']))
  2. $SESSION['tablica'] = array();

I później po prostu dodajesz do tej tablicy nowe produkty. Tu bez kodu bo mam nadzieję, że sobie z tym już poradzisz.

BTW. Limit geta zależy od przeglądarki.
piotr485
Na sesjach jeszcze niepracowałem tak dokładniej.
1. To w sesji moge przechowywac zmienne ?
2. Jakas podpowiedz do dodawania kolejnych produktow ?
3. Za pomoca formularza dodawalem zmienne do GETa do teraz mam je dodawac do sesji ? Jak to zrobic kurde molek ? Z tego co wiem formularz ma dwa mozliwosci wyslania GET i POST.

Z góry dziękuje za nakierowanie i pomoc - nieoczekuję gotowców!

kfc4
Sesja jest zmienną. Jest taką wielką tablicą. I zachowuje się jak tablica, więc możesz tab dodawać co sobie tylko chcesz. Formularz wysyłasz POSTem. Zapisujesz sobie wysłany formularz do tablicy. Tzn tworzysz tablicę w sesji. Masz wtedy taką wielowymiarową (dokładnie dwu) tablicę. I poprostu zapisujesz do niej to co obierzesz POSTem. Do danych dobierasz się tak: $_SESSION['tablica']['dane']. Mogę trochę źle wytłumaczyć ale mam nadzieję, że rozumiesz.
piotr485
Ale powiedź mi jakie są zalety sesji w tym przypadku i jaka róźnica będzie jeśli wszystko będę zapisywał metodą zamiast GET to POST dla przykładu:

  1. $post_tyt = $_POST['tytul'];
  2.  
  3.  
  4. <form action="" method="post">
  5. Tytuł dla produktów: <br /><input type="text" name="tytul" value="'.$post_tyt.'" style="width: 500px;"><br />
  6. <input type="submit">
  7. ';
  8.  
  9. echo '<div style="color: red;">'.$post_tyt.'</div>';


Tutaj to co wpiszę do inputa mi się zachowa, a więc po co używac sesje ?
kfc4
A no po to że, jak napisałeś w pierwszym poście nie wiesz ile będzie tych imputów. A jak wpiszesz coś innego, to skrypt nie pamięta już co wpisałeś wcześniej niej. Napisz dokładnie krok po kroku co chcesz osiągnąć to wtedy dobierzemy właściwą metodę.
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.