Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wczytywanie podstrony do div'a
Forum PHP.pl > Forum > Przedszkole
galq
Witam!
Jestem nowym użytkownikiem tego forum i dopiero zaczyma uczyć się jak postępować z PHP.
Jednak już teraz napotkałem kłopot z którym nie umiem się uporać a wujek Google nie przychodzi z pomocą.

Otóż chciałbym aby dana podstrona wyświetlała mi się w konkretnym div'ie.

Fragmenty kodu:

1. screeny.php
  1. <div id="alfabet">
  2.  
  3. <a href='screeny.php?id=1'>
  4. <div class="literka">
  5. <p><img style="width: 50%; height: 50%;" src="/literki/A.png" alt="A"></p>
  6. </div>
  7. </a>
  8.  
  9. ...
  10.  
  11. <a href='screeny.php?id=24'>
  12. <div class="literka">
  13. <p><img style="width: 50%; height: 50%;" src="/literki/Z.png" alt="Z"></p>
  14. </div>
  15. </a>
  16.  
  17. </div>


  1. <div id="scre">
  2.  
  3. <?php
  4.  
  5. $id = $_GET['id'];
  6.  
  7. if(!empty($id)) {
  8.  
  9. if(is_file("/literki/$id.html")) include "/literki/$id.html";
  10.  
  11. else echo "<br />Nie ma takiej strony :-(";
  12.  
  13. }
  14.  
  15. else include "/literki/1.html";
  16.  
  17. ?>
  18.  
  19. </div>


I teraz powinienem mieć podstrony w katalogu 'literki' z numerami od 1-24 i rozszerzeniem 'html'.
Jednak nie mam pojęcia jak one mają wglądać.
Czy to ma być tylko to co pomiędzy znacznikami '<body>', czy razem z oznaczeniami html'u(<html>, <head>, <body>)?

W tym momencie wyświetla mi się error opisany w powyższym skrypcie "Nie ma takiej strony"

Pozdrawiam
Galq
!*!
Chyba za długo dzisiaj pracuje, ale Cie nie rozumiem. Pytasz Nas jak mają wyglądać Twoje podstrony? Jakkolwiek, byle ładnie wink.gif Zabezpiecz ten skrypt jakoś bardziej, poza tym używaj {} przy if/else, a jeśli chodzi o zawartość tych plików html, to dostosują się one do dokumentu w jakim je wczytasz, zakładam że div scare jest gdzieś w body i jeśli nie sprawi Ci to kolizji w skypcie używaj ścieżki bezwzględnej "./literki/$id.html" do tych plików.
krzywy36
include wrzuca pliki tak "po prostu", nic nie dodaje nic nie odejmuje, więc w każdym Twoim pliku html powinien się znajdować "kawałek" strony, dosłownie tak jakbyś miał cała stronę napisaną (w html) i wyciął byś coś z pomiędzy tego <div> i </div>. To co wyciąłeś wrzucasz do includowanych plików smile.gif
galq
Więc zamieniłem zwykłe nawiasy na { } przy if/else, wprowadziłem scieżki bezwzględne, a moje podstrony wygladają tak:

plik '1.html'
  1. <div id="screeny">
  2. <a href="/screeny/*.html"><img src="*.jpg"></a>
  3. </div>


Nie wiem tylko co to jest "div scare"

Przy takim kodzie nadal występuje błąd "Nie ma takiej strony"
Czemu tak się dzieje?
!*!
div scare to ten w którym chce je wczytać, pokaż kod po zmianach. A skoro masz ten komunikat, to znaczy że stron tych nie ma. sprawdź funkcją file_exists jak istnieje to dopiero daj include.
galq
file_exists nie powierdza, ani nie zaprzecza że plik istnieje.

Podaję wszystko co mam:

1. plik screeny.php
  1. <div id="alfabet">
  2.  
  3. <a href='screeny.php?id=1'><div class="literka">
  4. <p><img style="width: 50%; height: 50%;" src="/literki/A.png" alt="A"></p>
  5. </div></a>
  6.  
  7.  
  8.  
  9. ...
  10.  
  11.  
  12.  
  13. <a href='screeny.php?id=24'><div class="literka">
  14. <p><img style="width: 50%; height: 50%;" src="/literki/Z.png" alt="Z"></p>
  15. </div></a>
  16.  
  17. </div>
  18.  
  19. <div id="scre">
  20.  
  21. <?php
  22.  
  23. $id = $_GET['id'];
  24.  
  25.  
  26. if{!empty{$id}} {
  27.  
  28. if{is_file{"./literki/$id.html"}} include "./literki/$id.html";
  29.  
  30. else echo "<br />Nie ma takiej strony :-(";
  31.  
  32. }
  33.  
  34. else include "./literki/1.html";
  35.  
  36. ?>
  37.  
  38. </div>


2. plik podstrony 1.html

  1. <div id="screeny">
  2. <a href="*.html"><img src="*.jpg"></a>
  3. </div>
  4.  


Już wiem co masz na mysli z divem scare biggrin.gif tyle że tam jest div "scre" cool.gif i jest umiejscowiony dokładnie tak jak w tym kodzie
!*!
Nie znasz podstaw PHP. Zacznij od kursu jak powinny wyglądać if/else pisałem abyś zamieścił ich blok kodu w {} a nie zamieniał nawiasy.

Cytat
file_exists nie powierdza, ani nie zaprzecza że plik istnieje


Nie ma takiej możliwości. Zwraca true lub false. I to już powinno Ci coś mówić.
galq
  1. <?php
  2.  
  3. $id = $_GET['id'];
  4.  
  5.  
  6. if(!empty($id)) {
  7.  
  8. if(is_file("./literki/$id.html")) {
  9. include "./literki/$id.html";
  10. }
  11.  
  12. else echo "<br />Nie ma takiej strony :-(";
  13.  
  14. }
  15.  
  16. else include "./literki/1.html";
  17.  
  18. ?>


Poprawiłem się?

i pytanie dotyczące file_exists, gdzie jest błąd?

  1. <?php
  2.  
  3. $filename = '/literki/1.html';
  4.  
  5. if (file_exists($filename)) {
  6. echo("tak");
  7. }
  8. else {
  9. echo("nie");
  10. }
  11. ?>
!*!
I co zwraca Ci ten kod? "nie"? no to chyba jasne że plik nie istnieje, ścieżka jest niepoprawna.
galq
chodzi o to że nic nie zwaraca, po prostu pusto.
!*!
A włączyłeś wyświetlanie błędów? Kilka tematów niżej masz opisane jak to zrobić.
galq
Wielkie dzięki za podpowiedź z tym file_exists. Rzeczywiście zwracał "nie". Zmieniłem troszkę scieżkę pliku i oddaje "tak". Myślę że problem rozwiązany smile.gif
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.