Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]zmiana wyglądu strony np. po wysłaniu formularza
Forum PHP.pl > Forum > Przedszkole
lamcpp
witam,
problem jest taki: mam stronę złożoną z nagłówka1, nagłówka2, lewej kolumny, prawej kolumny i stopki, czyli standardowy układ, w nagłówku1 jest wyszukiwarka, i chciałbym zeby po wpisaniu słowa i wybraniu przycisku "wyszukaj" wyniki wyszukiwania, czyli strona którą mam przygotowaną otworzyła się w tym samym oknie, ale żeby po otworzeniu się zmienił się układ mojej strony tzn. żeby zniknął całkowicie nagłówek2 i w miejscu tego nagłowka i w prawej kolumnie pojawiły się wyniki. Jak to osiągnąć?
Mówiąc prosciej chce zeby po kliknięciu "wyszukaj" strona zmieniła wygląd, żeby nagłówek nr 2 całkowicie zniknął, a to wolne miejsce po nim żeby wypełniły wyniki wyszukiwania.
Pomysł mam taki i prosiłbym o opinie czy dobry:
W polu formularza (tego za pomocą którego wyświetlam wyszukiwarke) jako action dodaje nową stronę, przykładowo nowa.php.
I w tym pliku nowa.php kopiuje treść strony głównej odpowiedzialnej za wyświetlanie wszystkiego(index.php) nanosząc odpowiednia zmiany, które mają się pojawić po wybraniu przycisku "wyszukaj" czyli np. usuwająć div z nagłówkiem nr2..i wtedy powinienem miec jakby nowy wygląd strony.
Pytanie czy to jest dobre rozwiązanie i czy takie się stosuje? ewentualnie jesli są jakies inne?
I druga sytuacja, dość analogiczna ale nie do konca...to samo chcę osiągnąć po kliknięciu na dane zdjęcie, miniaturke zeby zdjecie sie powiekszyło w tej samej stronie, i zeby równiez nagłowek dwa zniknął, jak to osiągnąć/
blooregard
Elementy, które mają się nie wyświetlać po wybraniu jakiejś akcji dajesz w warunku, w którym sprawdzasz, czy dana akcja nie należy do zbioru oreślonych jako te, w których mają się nie pojawiać:
  1. $actions = array('pokaz_obrazek_full' , 'pokaz_wyniki_wyszkiwania');
  2. ...
  3. // oczywiscie parametr action z GET odpowiednio przefiltrowany, tu pominalem
  4. if (!in_array($actions , $_GET['action'])) {
  5. // tu kod inludujacy fragment strony, ktory ma sie wyswietlic
  6. }
  7. ...
  8.  
lamcpp
mógłbyś jeszcze trochę bardziej szczegółowo naswietlić bo nie bardzo zrozumiałem, mają się nie wyświetlić pewne bloki (div), zamiast nich ma sie wyswietlic cos innego
blooregard
Powiedzmy, że masz stronę główną (index.php) i w zależności od parametru 'action' z GET-a inkluduje do div-a 'content' odpowiednią treść:
  1. //to w div id=header
  2. include('header.php');
  3.  
  4. //to w div id=content
  5. switch($_GET['action']) {
  6.  
  7. case 'o nas': include('onas.php');
  8. case 'o was': include('owas.php');
  9. ... itd.
  10. }
  11.  
  12. //to w div id=left
  13. include('left.php');
  14.  
  15. //to w div id=footer
  16. include('footer.php');


Teraz dla akcji 'o was' nie chcesz, by wyświetlał się left.php, więc dajesz warunek:

  1. //to w div id=header
  2. include('header.php');
  3.  
  4. //to w div id=content
  5. switch($_GET['action']) {
  6.  
  7. case 'o nas': include('onas.php');
  8. case 'o was': include('owas.php');
  9. ... itd.
  10. }
  11.  
  12. // TU WARUNEK:
  13. if ($_GET['action'] != 'owas') { //jesli action z GET bedzie rowny 'owas', left.php nie zostanie zainkludowany
  14. //to w div id=left
  15. include('left.php');
  16. }
  17.  
  18. //to w div id=footer
  19. include('footer.php');


Tak jaśniej?
lamcpp
Dużo jasniej, dzięki:)
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.