![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam...
Na stronie mam dwa formularze "lista" (Pierwsza to litera a druga to nazwa filmu )które ukazują się po wciśnięciu przycisku "submit" Problem jest taki, że do pierwszej listy dałem zdarzenie onChange="this.form.submit() by automatycznie po wybraniu litery pokazały się filmy w drugiej liście na tą literę. Po wybraniu litery następuje przeładowanie strony i formularze znikają. "Co jest logiczne" ... Jak mogę zapamiętać akcję wcisnięcia przycisku po przeładowaniu ale tylko na stronie na której aktualnie przebywam ? Jak wejdę na inną strone i wróce to chcę by formularze dalej były widoczne dopiero po wcisnięciu przycisku. Potrzebuję tylko nakierowania czego powinienem uzyć : sesji , cookie czy coś innego ... |
|
|
![]() |
-Wieviór- |
![]()
Post
#2
|
Goście ![]() |
Zarzuć kodem, to może coś zaradzimy ;]
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 9 Dołączył: 7.03.2009 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
<?php
session_start(); $_SESSION['kliknieto']; # Przykład na przycisk submit <inpu type="register" value="ok"> if ( isset($_POST['register']) && $_POST['register']="ok" ) { $_SESSION['kliknieto=1']; } if ( $_SESSION['kliknieto'] == 1) { echo ' Już raz kliknięto opcję.'; } ?> To tak przykładowo. Ale sprubój też sobie, czy zadziała bez użycia sesji. Nie mogę teraz sam sprawdzić, bo brak mi czasu. pozdrawiam Ten post edytował korkie 16.05.2009, 07:26:54 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Załóżmy, że mamy prosty kod:
Kod <?php if(count($_GET['pokaz'])) { print (" <form action=\"index.php\" method=\"get\"> <select name=\"lista\" onChange=\"this.form.submit()\"> <option value=\"aaa\">aaa</option> <option value=\"bbb\">bbb</option> <option value=\"ccc\">ccc</option> <option value=\"ddd\">ddd</option> </select> </form> "); } ?> <form action="index.php" method="get"> <input name="pokaz" type="submit" value="pokaz" /> </form> Jeśli wybiorę coś z listy strona zostanie przeładowana z uwagi na onChange=\"this.form.submit()\" i lista znika. Chciałbym aby po kliknięciu w przycisk pojawiła się lista i to zdarzenie zostało gdzieś zapisane np. w ciasteczku. Po każdym przeładowaniu strony lub wykonaniu innego skryptu na tej stronie sprawdzało by czy istnieje ciasteczko - jesli tak to wyświetli liste. Ale ciasteczko musiało by być niszczone po opuszczeniu strony by jak powrócić na stronę z listą to znów ma się pojawić dopiero po kliknięciu w przycisk. Wydaję mi się, że wyjście ze strony a przeładowanie jej to dla PHP to samo i nie potrafi tego rozróżnić Czy jest na to rozwiązanie? |
|
|
-Wieviór- |
![]()
Post
#5
|
Goście ![]() |
Nie jestem pewien czy dobrze rozumiem co chcesz osiągnąć, ale najlepiej to chyba zrobić dwoma selectami (jeden z literami, drugi z tytułami filmów) i za pomocą jquery/javascript zmieniać zawartość drugiego przy zmianie wyboru w pierwszym.
Jeśli chcesz to robić tak jak robisz, czyli przeładowywać to raczej zapisuj to w sesji. Dopóki sobie chodzisz po stronie to te dane masz, a po wyłączeniu przeglądarki sesja znika. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Udało mi zrobić to co chciałem po prostu zmienna ($zmienna) ... (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)
Kod <? $zmienna = $_GET['lista2']; if((count($_GET['wyswietl'])) OR ($zmienna != NULL)) { print(" <form action=\"index.php\" method=\"GET\"> <select name=\"lista2\" size=\"5\" onChange=\"this.form.submit()\" style=\"width:100px;\"> "); $sql = 'SELECT id, rok FROM rok'; $wynik = mysql_query($sql); while($r = mysql_fetch_array($wynik)) { echo "<option value=".$r['id']." "; if ($zmienna == $r['id']) { echo 'selected="selected"'; } echo ">".$r['rok']."</option>"; } print (" </select> <select name=\"lista3\" size=\"5\" style=\"width:300px;\"> "); $sql = "SELECT id, gra FROM gra WHERE id_rok='$zmienna'"; $wynik = mysql_query($sql); while($a = mysql_fetch_array($wynik)) { echo "<option>".$a['gra']."</option>"; } print ("</select> </form> "); } ?> gotowy kod na dwie listy zależne pobierające dane z bazy wraz z zapamiętywaniem wybranej pozycji w pierwszej liście po przeładowaniu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 05:35 |