Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki od 1 do 12 z 13
Dynamiczna zawartość strony.
  1. #1
    Świeżak
    Dołączył
    14.06.2009
    Posty
    4
    Wątków
    1
    Siła reputacji
    6

    Domyślnie Dynamiczna zawartość strony.

    Witam.
    Planuję stworzyć stronę internetową, która będzie miała kilka działów. Działy będą się różnić tylko treścią div'a więc cała reszta pozostanie bez zmian. Wiem jak to zrobić na ramkach ale szukam innego rozwiązania i moim zdaniem można to zrobić w php ale nie wiem jak bo dopiero uczę się tego języka.
    Jeśli ktoś nie zrozumiał to wytłumaczę prościej. Po kliknięciu w dany odnośnik będzie się zmieniał tylko dany obszar z tekstem.
    Pozdrawiam

  2. #2
    VIP Awatar Baka78
    Dołączył
    02.11.2009
    Mieszka w
    łódzkie
    Posty
    510
    Wątków
    6
    Siła reputacji
    11

    Domyślnie Odp: Dynamiczna zawartość strony.

    Z całego php na początek wystarczy Ci funkcja
    Kod php:
    include "strona.php"
    Jeśli masz już gotową całą stronkę, to dzielisz ją na 3 części:
    1. html od początku do miejsca, w którym zaczyna się "dynamiczny" obszar - zapisz np. jako:
    Kod html:
    top.php
    2. html za "dynamicznym obszarem" do końca - zapisany np. jako
    Kod html:
    bottom.php
    3. kilka (tyle ile potrzebujesz) plików z kodem, który będzie wyświetlany jako zawartość "dynamiczna" - zapisanych z rozszerzeniem .php i o zawartości np:

    Kod php:
    <?php include "top.php"// wkleja początek stronki ?>
    ...
    jakaś tam zawartość :)
    ...
    <?php include "bottom.php"// wkleja koniec stronki ?>
    Skrypt na serwerze to wszystko złoży w jedną stronkę.
    Jest to najprostsze wyjście - można by użyć nieco więcej składni php wykorzystując zmienne $_GET do wybierania fragmentów kodu do wyświetlenia, ale jako że dopiero zaczynasz przygodę z php - zupełnie wystarczy.
    Ostatnio edytowane przez Baka78 ; 03.12.2009 o 14:55 Powód: system korekty pozamieniał słowa "k od" na download

  3. #3
    Świeżak
    Założyciel Tematu

    Dołączył
    14.06.2009
    Posty
    4
    Wątków
    1
    Siła reputacji
    6

    Domyślnie Odp: Dynamiczna zawartość strony.

    <?
    $i= $_POST['a'];
    $i= $_POST['b'];
    $i= $_POST['c'];
    $i= $_POST['d'];

    if ($i==a)
    {
    echo'tekst wyświetlony po kliknieciu odnosnika 1';
    }
    else
    {
    if ($i==b)
    echo'tekst wyświetlony po kliknięciu odnośnika 2';
    }

    else
    {
    if ($i==c)
    echo'tekst wyświetlony po kliknięciu odnośnika 3';
    }
    else
    {
    if ($i==d)
    echo'tekst wyświetlony po kliknięciu odnośnika 4';
    }


    ?>
    O ile to w ogóle dobrze to nie wiem jak zrobić by kliknięty odnośnik był traktowany jako wybór np 'a'.

    Jeśli umieszczę ten kod w div'ie, który jest wypozycjonowany w konkretnym miejscu to uzyskam pożądany efekt(w zależności od klikniętego odnośnika na stronie ma się zmieniać tekst.)
    Ostatnio edytowane przez kaka55 ; 03.12.2009 o 22:33

  4. #4
    VIP Awatar Baka78
    Dołączył
    02.11.2009
    Mieszka w
    łódzkie
    Posty
    510
    Wątków
    6
    Siła reputacji
    11

    Domyślnie Odp: Dynamiczna zawartość strony.

    Możemy mieć różny tok myśleniowy, więc możliwe jest, iż dobrze kombinujesz..

    echo ""; było by potrzebne, gdyby cała zawartość witryny została zamknięta w jednym pliku .php

    Ko-d stronki przy użyciu pętli if mógłby wtedy wyglądać np. tak:

    Kod php:
    <html>
    <head><title>stronka.php</title></head>
    <body>
      <!-- jakiś tam początek -->
    ...
      <!-- menu -->
    <a href="?strona=st_1">strona 1</a>
    <a href="?strona=st_2">strona 2</a>
    <a href="?strona=st_3">strona 3</a>
    ...
      <!-- dalej miejsce na zmiany -->
    <div id="zawartosc">

    <?php
    $strona 
    $_GET['strona'];

    if (!isset(
    $strona) or $strona=="st_1")
      { echo 
    "zawartość strony 1"; }

    else if (
    $strona=="st_2")
      { echo 
    "zawartość strony 2"; }

    else if (
    $strona=="st_3")
      { echo 
    "zawartość strony 3"; }

    else {}

    ?>

    </div>
      <!-- zamykamy blok zawartości i dajemy resztę html'a -->
    </body>
    </html>

    To, co podałeś w poście powyżej - nie będzie działać. Są tam błędy składni, i dodatkowo, do jednej zmiennej ($i) nie możesz przypisywać tylu wartości - przyjmie ona tylko tą ostatnią.
    Ostatnio edytowane przez Baka78 ; 03.12.2009 o 22:50

  5. #5
    Świeżak
    Założyciel Tematu

    Dołączył
    14.06.2009
    Posty
    4
    Wątków
    1
    Siła reputacji
    6

    Domyślnie Odp: Dynamiczna zawartość strony.

    Przyciski są wypozycjonowane za pomocą div'ów. Reszta przycisków ma tą samą składnie lecz ma wyświetlać inny tekst
    Div tekst ma pozycjonować wyświetlany tekst.
    Kod:
    <div id="przycisk4"><a href="?strona=3"><img src="przycisk_pomoc2.png" 	border="0" 
    
    alt="Zauwazyles bledy na stronie?Zlgos je"/></a></div>
    
    <div id="tekst" align="justify">
    
    <?php
    $strona = $_GET['strona'];
    
    if (!isset($strona) or $strona=="1")
    {
    	echo 'zawartość strony 1'; 
    }
    
    else if ($strona=="2")
    { 
    	echo 'zawartość strony 2'; 
    }
    else if ($strona=="3")
    {
    	echo 'zawartość strony 3'; 
    }
    
    ?>
    
    </div>
    Zrobiłem tak jak poradziłeś jednak to nie działa. Co mogę robić nadal źle?

  6. #6
    Precylowicz Awatar Tomi
    Dołączył
    02.12.2009
    Mieszka w
    Tarnów
    Posty
    1,054
    Wątków
    8
    Siła reputacji
    13

    Domyślnie Odp: Dynamiczna zawartość strony.

    Tak się zastanawiam czy nie byłoby prościej zamiast tylu if'ow zastosować switch
    Kod php:
    switch ($strona) {
        case 
    0:
            echo 
    "strona 0";
            break;
        case 
    1:
            echo 
    "strona 1";
            break;
        case 
    2:
            echo 
    "strona 2";
            break;

    a i jeszcze jedno zastanawiam się czy cudzysłowowy u ciebie w if'ach maja jakieś znaczenie (spróbuj bez nich)

  7. #7
    VIP Awatar Baka78
    Dołączył
    02.11.2009
    Mieszka w
    łódzkie
    Posty
    510
    Wątków
    6
    Siła reputacji
    11

    Domyślnie Odp: Dynamiczna zawartość strony.

    Pewnie, że na switch jest to najwygodniejsze, ale kolega prosił o przykład na pętli if gdyż dopiero rozpoczyna zabawę z php

    I teraz pytanie zasadnicze: z jakim rozszerzeniem zapisujesz pliki stronki na serwerze?
    Skrypt na pewno nie zadziała, jeśli będzie to .htm / .html - poprawnym rozszerzeniem jest .php

  8. #8
    Świeżak
    Założyciel Tematu

    Dołączył
    14.06.2009
    Posty
    4
    Wątków
    1
    Siła reputacji
    6

    Domyślnie Odp: Dynamiczna zawartość strony.

    Dziękuje.
    Dodając do mojej strony ten prościutki skrypt zapomniałem zmienić rozszerzenia na php. Teraz już jest wszystko ok.
    Znam podstawy c++ więc pętle for , while , do while itp są mi znane, ale w książce php przeczytałem, że nie ma to znaczenia której się użyje o ile skrypt będzie działać w ten sam sposób. Bo z tego co do tej pory zdążyłem się nauczyć to szybkość wykonywania jest ta sama.
    Chciałbym jednocześnie spytać, czy będąc początkującym mogę już zacząć zabawę z forum (Mam skrypt SMF) i uczyć się na błędach czy dopiero po przeczytaniu jakiejś konkretniejszej książki.
    Pozdrawiam i dziękuje.
    Edit: Był bym zapomniał. Gdzie mogę się dowiedzieć czegoś więcej o newsach rss? Czyli newsach samoczynnie pobieranych przez stronę w zależności od wybranych słów kluczowych. Wujek google coś słabo się postarał.
    Ostatnio edytowane przez kaka55 ; 05.12.2009 o 12:54

  9. #9
    VIP Awatar Baka78
    Dołączył
    02.11.2009
    Mieszka w
    łódzkie
    Posty
    510
    Wątków
    6
    Siła reputacji
    11

    Domyślnie Odp: Dynamiczna zawartość strony.

    I wszystko jasne

    Fakt, przy tak prostym, pojedynczym skrypcie - prędkość działania jest porównywalna.
    Bardziej istotna przy tworzeniu strony, której część "dynamiczna" zawarta jest w całości w jednym pliku jest przejrzystość ko-du, którą zapewnia przełącznik switch(); proponowany przez @Quiner.

    Podczas nauki proponuję, aby trenować "na błędach" z książką w ręku - i zawsze dokładnie czytać komunikaty błędów.
    Co do "konkretnej" książki - niczego nie będę polecał, bo sam korzystałem z kilku i każda z nich podchodziła do tematu nieco inaczej...

    O rss nic nie wiem (sic!), więc tu się nie wypowiem
    Lepiej załóż nowy post z tym pytaniem - szybciej dostaniesz odpowiedź.

  10. #10
    Użytkownik
    Dołączył
    08.08.2009
    Posty
    15
    Wątków
    1
    Siła reputacji
    6

    Domyślnie Odp: Dynamiczna zawartość strony.

    W pierwszym poście było napisane:
    "Jeśli ktoś nie zrozumiał to wytłumaczę prościej. Po kliknięciu w dany odnośnik będzie się zmieniał tylko dany obszar z tekstem."

    Więc przeładowanie strony odpada.

    Zrób sobie plik php oparty na GET, którego efektem będzie wyświetlony sam text.
    A następnie wczytuj go do diva za pomocą AJAX-a(java script) z przekazaniem parametru przez link(czyli GET).
    Cała strona się nie przeładuje, a uzyskasz efekt ramki. To znaczy 0 przeładowania strony, zmieni się sam text w divie.

    Pozdrawiam.

  11. #11
    Precylowicz Awatar Tomi
    Dołączył
    02.12.2009
    Mieszka w
    Tarnów
    Posty
    1,054
    Wątków
    8
    Siła reputacji
    13

    Domyślnie Odp: Dynamiczna zawartość strony.

    Ale kolega tutaj jest początkujący więc AJAX odpada;p co do przeładowywania stron to wystarczy dobrze zrobiony layout i nie będzie widać ze coś się źle okłada bo zawsze będzie tak samo raz tak zrobiłem i kumple mówił ze fajnie to na Ajaksie zrobiłem a to nie było na Ajaksie tylko normalnie statyczne

  12. #12
    VIP Awatar Baka78
    Dołączył
    02.11.2009
    Mieszka w
    łódzkie
    Posty
    510
    Wątków
    6
    Siła reputacji
    11

    Domyślnie Odp: Dynamiczna zawartość strony.

    I zostaje jeszcze jeden problem: niektórzy wyłączają w przeglądarkach obsługę JavaScript i innych "potencjalnie niebezpiecznych zawartości" (domyślne ustawienia np. w IE8) - i wtedy co? Skórka bez treści...

Strona 1 z 2 12 OstatniOstatni
  1. Ranking tematów

Tagi dla tego wątku

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •