Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przeróbka xhtml na php (funkcja include)
Forum PHP.pl > Forum > PHP
xcerberek
Witam. Mam pytanie czy jest ktoś w stanie wyjaśnić mi jak zastosować funkcje php (include). W jakiś prosty i przystępny sposób? Próbowałem z różnymi internetowymi poradnikami - wiele prób metod i wszystkie kończyły mi się tym, że nie działało.
Dokładnie chodzi mi o to aby na tej stronie użyć funkcji include: link
Chcałbym zrobić aby przy użyciu menu wczytywało tylko zawartość a nie całą strone z menu logo itp
zaznaczam, ze nie miałem do tej pory styczności z php. Chodzi mi tylko i wyłącznie aby zrozumieć zasade działania tej funkcji
mortus
Do tego include nie wystarczy. Trzeba skorzystać z AJAX-a, choć AJAX powinien być tylko "dodatkiem". Najpierw trzeba zbudować stronę w oparciu o php i include (jeżeli taki jest Twój wybór), a później wzbogacić ją o przeładowanie treści bez przeładowywania strony. Problemem jest to, że Twoja strona na dzień dzisiejszy w ogóle z PHP nie korzysta. Każdy odnośnik prowadzi do osobnego pliku html. Zacznij od podstaw PHP, albo zleć to komuś.
xcerberek
a to szkoda:) nic to zostawie chyba tak jak jest. Koleżance robie stronke więc raczej nie będę zlecał nikomu:) taka musi wystarczyć jej
Danielcom
Można to zrobić dość prosto używając biblioteki jQuery. Każdą podstronę musiał byś zrobić oddzielnie, a później w zależności od tego w który link klikniesz w divie otworzy się treść.
Poczytaj na tej stronce, jest prosto wyłumaczone.
mortus
No dobra, tylko co będzie jeśli użytkownik wyłączy JavaScript w swojej przeglądarce. Strona przestaje działać. Dlatego napisałem, że JavaScript powinien być "dodatkiem", a właściwe funkcjonowanie strony należy w całości oprzeć o PHP. Poza tym pozostaje kwestia tego, jak mają być zbudowane poszczególne pliki, które są wczytywane po kliknięciu w odnośnik. Jeśli będą to pliki HTML i będą zawierać cały kod HTML (łącznie z definicją doctype i sekcją head), to po wczytaniu strona będzie nieprawidłowa (według walidatora XHTML). Jeśli natomiast nie dołączymy definicji doctype i sekcji head, a użytkownik uruchomi stronę jako osobny plik HTML, to również będzie ona nieprawidłowa z punktu widzenia walidatora XHTML. Wynika z tego, że treść tak, czy tak powinna przechodzić przez skrypt PHP. Zresztą będzie to o wiele bezpieczniejsz rozwiązanie.
xcerberek
ja próbuje zastosowac to rozwiązanie

link
Danielcom
Przy tym rozwiązaniu przeładuje się cała strona. Co prawda jeśli grafika będzie dobrze zrobione, to będzie to prawie niezauważalne. Ale nadal nie rozumiem co u Ciebie nie działa. Jesli masz już jakiś kod to wklej go na forum.
xcerberek
ok znalazłem błąd. Miałem literówke. Teraz podziałam dalem nad tym i jak się natkne na problem to się odezwe



Mój kod wygląda teraz tak:


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.  
  4.  
  5. <title>HYPERNET dział geodezji</title>
  6. <meta name="description" content="Szybkie i tanie usługi geodezyjne w różnych dziedzinach." />
  7. <meta name="keywords" content="Rozgraniczenia, mapy, pomiary, podziały, tyczenia, geodeta, geodezja, mapa" />
  8. <meta http-equiv="Content-Language" content="pl" />
  9. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />
  10.  
  11. <link rel="stylesheet" type="text/css" href="css/style.css" />
  12.  
  13. </head>
  14.  
  15.  
  16. <div id="topCont">
  17. <div id="top">
  18. <div id="topleft"><p><a title="Treść właściwa" href="#mainCont">Pokaż treść</a></p></div>
  19. <div id="topright"><p>HYPERNET SC tel. 668 777 999</p></div>
  20. </div>
  21. <div id="header">
  22. <div id="headerleft"><img alt="" src="images/logo.jpg" /></div>
  23. <div id="headerright">
  24. <h1>Profesjonalne usługi geodezyjne</h1>
  25. <h2>Najszybsze, najtańsze, najlepsze usługi w regionie</h2>
  26. </div>
  27. </div>
  28. </div>
  29.  
  30. <div id="mainCont">
  31. <div id="main">
  32. <div id="mainmenu">
  33. <ul>
  34. <li><a href="index.php?strona=glowna">Główna</a></li>
  35. <li><a href="index.php?strona=podzialy">Podziały nieruchomości</a></li>
  36. <li><a href="index.php?strona=rozgraniczenia">Rozgraniczenia i wznowienia granic</a></li>
  37. <li><a href="index.php?strona=mapy">Mapy do celów projektowych w różnych skalach</a></li>
  38. <li><a href="index.php?strona=pomiary">Pomiary sytuacyjno-wysokościowe</a></li>
  39. <li><a href="index.php?strona=tyczenia">Tyczenia obiektów budowlanych</a></li>
  40. <li><a href="index.php?strona=tyczenia_2">Tyczenia projektowanych urządzeń uzbrojenia podziemnego i naziemnego oraz ich inwentaryzacja powykonawcza</a></li>
  41. <li><a href="index.php?strona=pomiary_2">Pomiary inwentaryzacyjne</a></li>
  42. <li><a href="index.php?strona=kontakt">KONTAKT</a></li>
  43. </ul>
  44. <center> <p>Tel: <span>+48 668 777 999</span></p> </center>
  45. </div>
  46. <div id="maincontent">
  47. <?PHP
  48. @$strona=$_GET['strona']; // 1
  49.  
  50. if (file_exists($strona.'.html'))
  51. include($strona.'.html'); // 2
  52. else
  53. include('glowna.html');
  54. ?>
  55. </div>
  56. <div class="bottom"></div>
  57. </div>
  58. </div>
  59.  
  60. <div id="footerCont">
  61. <div id="footer">
  62. <div id="footerleft">
  63. <p><a title="Wróć do góry" href="#topCont">Wróć do góry ^</a></p>
  64. </div>
  65. <div id="footerright">
  66. <p>Stronę stworzył<a title="Twórca" href="http://www.psiarnia.xaa.pl"> xCerberek</a></p>
  67. </div>
  68. <div class="bottom"></div>
  69. </div>
  70. </div>
  71.  
  72. </body>
  73.  
  74. </html>


I mam pytanie bo napisałeś tym sposobem ładuje się cała strona od nowa tak? Ja troche wyciąłem. Jak jest w tym przypadku?
jareeny
też przeładuje się cała strona winksmiley.jpg

xcerberek
to w sumie zyskałem tylko tyle, że nie musze na każdej podstronie robić menu itp i łatwiej przeróbki się zrobi? czyli cały dzień na to poświęciłem

PS a skomplikowane będzie zrobienie przy tym sposobie żebym mógł w odnośnikach używać zaznaczenia aktywnego?

class="active"

już wiem dlaczego to nie działa
Cytat
Gdy go napisałem, zorientowałem się, że to nie może wypalić bo kod jest interpretowany po stornie serwera a ja potrzebuje czegoś, co będzie działało po stronie użytkownika


i odpowiedź:
Cytat
Ogólnie musiałbyś otwierać podstrony AJAXem
jareeny
ale jeżeli ktoś ma wyłączoną obsługę Javascript, to leżysz winksmiley.jpg
Danielcom
Cytat(jareeny @ 9.05.2010, 22:47:18 ) *
ale jeżeli ktoś ma wyłączoną obsługę Javascript, to leżysz winksmiley.jpg


na upartego można przygotować dwie wersje strony smile.gif
xcerberek
zostawiam już ją tak jak jest:)
jareeny
Cytat
na upartego można przygotować dwie wersje strony


nie na upartego, tylko jak chcesz mieć obsługę po stronie klienta, to musisz mieć i po stronie serwera winksmiley.jpg
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.