Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przesyłanie zmiennych POSTem nie z formularza
Forum PHP.pl > Forum > PHP
szczypior
Witam

Piszę skrypt stronicowania wyników z mysqla. Z form wysyłany jest POSTem i odbierany przez skrypt który wprowadza jego wartość w zapytanie sql i wyświetla wyniki, ale tylko na pierwszej stronie. Gdy wcisnę przycisk przejścia do następnej strony wyników nie ma bo wartość zmiennej POSTowej przepadła.
Jak można przekazać zmienne "dalej" POSTem, albo innym sposobem? GET oczywiście odpada.

Dziękuję i pozdrawiam
Andrzej
trafas
Witam.

Możesz sobie zrobić skrypt zapisujący zapytanie do pliku tekstowego a poźniej wywoływać funkcję odczytującą to zapytanie, ale to by spowolniło działanie skryptu no i pozostaje wtedy do rozwiazania problem nazewnictwa plików no i później ich kasowanie.

Lepszym sposobem będzie wystartowanie sesji i trzymać "wartość zmiennej POSTowej" w zmiennej sesji. Na każdej następnej stronie wystarczy że będziesz startował sesję ( session_start(); ) i możesz się odwoływać do zmiennej sesji. Będzie cały czas dostępna między stronami.
WebCM
Znalezione pozycje zapisz w bazie danych lub w pliku tekstowym / INI (aby użytkownik mógł się nimi podzielić przez komunikator), natomiast w adresie strony (GET) przekazuj ID wyszukiwania i stronę. POST ma służyć tylko do przekazania kryteriów - za pierwszym razem. smile.gif W ten sposób zmniejszysz obciążenie serwera.
qqrq
Cytat(szczypior @ 16.09.2007, 14:33:15 ) *
Jak można przekazać zmienne "dalej" POSTem, albo innym sposobem?


Wystarczy, że stworzysz (pętlą na ten przykład) tyle pól hidden formularza ile masz zmiennych POST (i oczywiście przypiszesz im odpowiednie wartości).

EDIT =>

  1. <?php
  2. foreach ($_POST as $k => $post)
  3. echo '<input type="hidden" name="'.$k.'" value="'.$post.'" />';
  4. ?>
Istalacar
Ewentualnie AJAX (który jest ostatnio popularny przy komentarzach, lub księgach gości), lub javascript który wyśle wszystkie wymagane dane przez post do skryptu jakie potrzeba;).
WebCM
Na liście pozycji link "usuń" oparty jest o AJAX. Z jednej strony to bezpieczniejsze i szybsze, a z drugiej - kto ma wyłączony JS, nie wykona operacji. Co o tym myślicie?
Istalacar
Jeśli chcesz się pobawić to możesz zamieścić zwykły odnośnik do usunięcia, a potem w javascript dodać kod który podmieni go na wersję ajaxową.
pertu
cześć party.gif
Cytat(trafas @ 16.09.2007, 15:03:00 ) *
Lepszym sposobem będzie wystartowanie sesji i trzymać "wartość zmiennej POSTowej" w zmiennej sesji.


Cytat(qqrq @ 16.09.2007, 22:52:00 ) *
Wystarczy, że stworzysz (pętlą na ten przykład) tyle pól hidden formularza ile masz zmiennych POST (i oczywiście przypiszesz im odpowiednie wartości).


mam takie pytanko, które s tych rozwiązań jest bardziej lepsze, profesjonalne? Forum.php.pl chyba z sesji korzysta ?

z góry dzięki za odpowiedź
kemot
Ja myśle że sesja, tylko że do tego dochodzą kwestie zwiazane z bezpieczeństwem (szyfrowanie danych, zakończenie sesji session_destroy(); gdy praca z formularzem zostanie zakończona).
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.