Jakub Bieszke

Jakub Bieszke PMI (CAMP),
Konsultant
wdrożeniowy

Temat: Wyświtlenie kodu HTML zapisanego w instrukcji SWITCH

Mam w osobnym pliku (loader.php) kod treści, które ładuję do strony głównej JavaScriptem (Ajaxowo do diva bez przeładowywania strony). Korzystałem z przykładu dostępnego w sieci, który przerobiłem na własne potrzeby.
Chciałbym dodatkowo stworzyć 'statyczną' stronę z wybranymi lub wszystkimi wpisami tych treści. Proszę o pomoc w jaki sposób z poniższego kodu wprowadzić te treści na jedną stronę.

<?
switch($_GET['page']) {
case '#A1' : $page = '<h5>Jakiś kod html</h5></br><p>bla bla</p>'; break;

case '#A2' : $page = '<h5>Inny kod html</h5>'; break;

case '#A3' : $page = '...
...
...
...
}
echo $page;
?>


z góry dzięki i pozdrawiamJakub Bieszke edytował(a) ten post dnia 02.02.10 o godzinie 11:19

konto usunięte

Temat: Wyświtlenie kodu HTML zapisanego w instrukcji SWITCH

Ta statyczna strona ma zawierać wszystkie case'y ze switcha czy co?
Michał C.

Michał C. Deputy Head of
Software Development

Temat: Wyświtlenie kodu HTML zapisanego w instrukcji SWITCH

Najprościej elementy kodu zapisz w osobnych plikach. Pozniej za pomocą http://php.net/manual/en/function.file-get-contents.php wczytujesz do zmiennej i później wyświetlasz.
<?
switch($_GET['page']) {

case '#A1' : $page = file_get_contents('a1.html'); break;



case '#A2' : $page = file_get_contents('a2.html'); break;



case '#A3' : $page = '...

...

...

...

}

echo $page;
?>
Michał Czerwiński edytował(a) ten post dnia 02.02.10 o godzinie 14:53
Paweł Koralewski

Paweł Koralewski architekt aplikacji,
team leader

Temat: Wyświtlenie kodu HTML zapisanego w instrukcji SWITCH

Proponuję, abyś zrobił sobie tablicę. Potem z niej wyciągniesz albo potrzebny element abo wszystkie.

<?php
$teksty = array('#A1' => '<h5>Jakiś kod html</h5></br><p>bla bla</p>',
'#A2' => '<h5>Inny kod html</h5>');

//zwracam pojedynczy tekst
if (isset($_GET['page'])) $page = $teksty[$_GET['page'];
else $page = '';

//zwracam wszystkie teksty
$page = '';
foreach($teksty as $t) $page .= $t;

konto usunięte

Temat: Wyświtlenie kodu HTML zapisanego w instrukcji SWITCH

Michał - przecież to nie jest odpowiedź na jego pytanie.

Proponuję zrezygnować ze switch'a na rzecz tablicy, takie coś:

$pages = array();
$pages['#A1'] = '<h5>Jakiś kod html</h5></br><p>bla bla</p>';
$pages['#A2'] = '<h5>Inny kod html</h5>';
...
$pages['#An'] = '...';

if(!isset($_GET['page']) || !in_array($_GET['page'], array_merge(array('all'), array_keys($pages))))
$_GET['page'] = '#A1'; // przypisanie wartosci gdy nie podano page lub strona nie istnieje

if($_GET['page'] == 'all') { // wszystkie strony w jednym - page=all
foreach($pages as $page) {
echo $page;
}
}

if(isset($pages[$_GET['page']])) { // konkretna strona - np. page=#A1
echo $pages[$_GET['page']];
}


Choć najprzyjemniejsza w obsłudze będzie, taka wersja:

$pages = array();
$pages['#A1'] = './pages/page_1.html'; // sciezka do pliku z trescia strony 1
$pages['#A2'] = './pages/page_2.html';
...
$pages['#An'] = './pages/page_n.html';


if(!isset($_GET['page']) || !in_array($_GET['page'], array_merge(array('all'), array_keys($pages))))
$_GET['page'] = '#A1'; // przypisanie wartosci gdy nie podano page lub strona nie istnieje

if($_GET['page'] == 'all') { // wszystkie strony w jednym - page=all
foreach($pages as $page) {
if(!file_exists($page))
continue;
echo file_get_contents($page)
}
}

if(isset($pages[$_GET['page']]) && file_exists($pages[$_GET['page']])) { // konkretna strona - np. page=#A1
echo file_get_contents($page);
}


Obie propozycje nie testowane, pisane na przypał.Michał Wachowski edytował(a) ten post dnia 03.02.10 o godzinie 00:49
Michał C.

Michał C. Deputy Head of
Software Development

Temat: Wyświtlenie kodu HTML zapisanego w instrukcji SWITCH

Racja - trochę się pospieszyłem :)
Jakub Bieszke

Jakub Bieszke PMI (CAMP),
Konsultant
wdrożeniowy

Temat: Wyświtlenie kodu HTML zapisanego w instrukcji SWITCH

Dzięki za odpowiedzie, ale kod, który podałem jest już narzucony całą obsługą JavaScriptu i php, tworzenie tablic czy innego zaproponowanego rozwiązania wymagałoby przebudowania sporej ilości już działającego serwisu. Chciałem się dowiedzieć jak z podanego przeze mnie kodu wyciagnąć wybrane lub wszystkie wpisy w Case'ach do jednej z podstron.
Michał C.

Michał C. Deputy Head of
Software Development

Temat: Wyświtlenie kodu HTML zapisanego w instrukcji SWITCH

Na końcu w case możesz dać default i jeśli nie "znajdzie" nic w warunkach to tam możesz np. wyświetlić wszystkie podstrony czy co tam chcesz...

Następna dyskusja:

Zamiana kodu html na jpg/png




Wyślij zaproszenie do