Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Aktualizowanie strony w php bez użycia bazy danych
Forum PHP.pl > Forum > Przedszkole
Whitefire
hej wszystkim!

Początkuję w php i nie dotarłem jeszcze do lekcji o bazach danych więc próbuję sklecić to, co chcę, bez bazy smile.gif

Ale nie wiem, czy się da.

Co chcę uzyskać:

Otóż mam sobie na stronce [button] i kiedy go nacisnę, chcę żeby wyświetliła się liczba. Docelowo losowa, ale powiedzmy teraz: 1.
Dalej, chcę żeby, kiedy nacisnę [button] po raz drugi, obok pojawiła się druga liczba. Powiedzmy: 2.
Naciskam [button] po raz trzeci i drukuje mi liczbę: 3.

Wszystko fajnie, tylko ja chcę, żeby mi zapamiętywało te poprzednie i wyświetlało: 1, 2, 3 (w sensie: 1 zmienna, 2 zmienna, 3 zmienna).

Wybiedziłem taki kod, ale niestety pokazuje najpierw 1, potem 2, potem 3 (na zmianę).

Pytanie moje brzmi: da się to zrobić bez bazy danych, najlepiej w jednym pliku i z użyciem jednego przycisku? Ma ktoś jakie sugestie, jak, niezależnie od odpowiedzi na pierwsze pytanie?

  1. <?PHP
  2. $submit_name = "roll_1";
  3. $result_1 = 0
  4.  
  5. if (isset($_POST['roll_1'])) {
  6. $submit_name = "roll_2";
  7. $result_1 = 1;
  8. print ($result_1);
  9. }
  10.  
  11. if (isset($_POST['roll_2'])) {
  12. $submit_name = "roll_3";
  13. $result_2 = 2;
  14. print ($result_1 . ", " . $result_2);
  15. }
  16.  
  17. if (isset($_POST['roll_3'])) {
  18. $result_3 = 3;
  19. print ($result_1 . ", " . $result_2 . ", " . $result_3);
  20. }
  21. else{
  22. print ("");
  23. }
  24. ?>
  25.  
  26. <html><head></head><body>
  27. <form name="form1" method="post" action="test.php">
  28. <input type='submit' name='<?php print ($submit_name); ?>' value='kliknij mnie'/>
  29. </form>
  30. </body></html>
nospor
Temat: Jak poprawnie zatytulowac watek

edit: otwieram
gargamel
Zamiast post-em, wysyłaj get-em i przepisuj linki.

  1. <form name="form1" method="get" action="test.php?<?php echo $_SERVER['QUERY_STRING']; ?>">


$_SERVER['QUERY_STRING'] zwróci Ci to co masz obecnie w tablicy GET. Kolejne wysłanie formularza GETem dopisze następne wartości.

PS

No i oczywiście później nie odwołujesz się do zmiennych przez $_POST, tylko przez $_GET.
Whitefire
Nie chce mi to działać, tzn jest tak jak wcześniej, za wyjątkiem linku ofc, gdzie po klikaniu na przycisk nie "przepisuje mi się" link, tylko się zmienia, tzn przy klikaniu końcówka wygląda tak:

test.php
test.php?roll_1=kliknijmnie
test.php?roll_2=kliknijmnie
test.php?roll_3=kliknijmnie

w międzyczasie próbowałem trochę innego podejścia, takiego żeby najpierw określić wszystkie zmienne (rzuty kostką, bo to w sumie o to chodzi), a potem przy klikaniu je na różny sposób wyświetlać (pierwszy rzut, pierwsze 2 rzuty, pierwsze 3 rzuty), dając użytkownikowi 'złudzenie' że jego klikanie coś daje. I byłoby nawet fajnie, gdyby nie to właśnie, że to są rzuty kostką, więc wartość jest nieregularna i po każdym kliknięciu zmieniały się też poprzednie liczby.

PS. Pełznę w stronę baz danych ale na razie jestem na pętlach i arrayach oneeyedsmiley02.png
CuteOne
A co za różnica czy POST czy GET....

  1. <?php
  2.  
  3. $content = '';
  4.  
  5. if(!empty($_POST['literka'])) {
  6.  
  7. $content = file_get_contents('plik_baza.txt');
  8. file_put_contents('plik_baza.txt', $content . $_POST['literka']);
  9. }
  10. ?>
  11. <form action="" method="post">
  12. Tekst: <?php echo $content . $_POST['literka']; ?> <br />
  13. <input type="text" name="literka" value="" />
  14. <input type="submit" name="submit" value="Ślij mnie" />
  15. </form>
Mackos
Po co tak utrudniać? Nie wystarczy wczytywać tych liczb do sesji ?
Zależy też na jak długo mają być zapamiętywane...
CuteOne
Utrudniać? masz 2 linijki kodu odpowiedzialne za pobranie i zapis danych z/do pliku... gdzie ty tu widzisz utrudnienia?

ps. "Pytanie moje brzmi: da się to zrobić bez bazy danych, najlepiej w jednym pliku"
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.