lamcpp
27.11.2009, 19:46:37
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
27.11.2009, 20:31:01
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ć:
$actions = array('pokaz_obrazek_full' , 'pokaz_wyniki_wyszkiwania'); ...
// oczywiscie parametr action z GET odpowiednio przefiltrowany, tu pominalem
if (!in_array($actions , $_GET['action'])) { // tu kod inludujacy fragment strony, ktory ma sie wyswietlic
}
...
lamcpp
27.11.2009, 22:10:36
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
27.11.2009, 23:04:11
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ść:
//to w div id=header
include('header.php');
//to w div id=content
switch($_GET['action']) {
case 'o nas': include('onas.php');
case 'o was': include('owas.php');
... itd.
}
//to w div id=left
include('left.php');
//to w div id=footer
include('footer.php');
Teraz dla akcji 'o was' nie chcesz, by wyświetlał się left.php, więc dajesz warunek:
//to w div id=header
include('header.php');
//to w div id=content
switch($_GET['action']) {
case 'o nas': include('onas.php');
case 'o was': include('owas.php');
... itd.
}
// TU WARUNEK:
if ($_GET['action'] != 'owas') { //jesli action z GET bedzie rowny 'owas', left.php nie zostanie zainkludowany
//to w div id=left
include('left.php');
}
//to w div id=footer
include('footer.php');
Tak jaśniej?