Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z include
Forum PHP.pl > Forum > Przedszkole
Nightss
Witam

Mam takie pytanie chodzi mi o funkcje include bowiem wczytuje w blok div plik php z linkiem w środku po wczytaniu tej strony jak kliknę link to otwiera się albo w górze bloku albo na dole. Jak zrobić czy się da żeby ten link wyświetlił się w tym samym bloku chodzi mi o podobny efekt jaki daje pager da się takie coś osiągnąć prosił bym o wskazówki. Z góry dziękuje
neosatan
podaj kod, bo ciezko stwierdzic o co dokladnie chodzi.

  1. echo '<div>';
  2. include('plik.php');
  3. echo '</div>';


plik.php
  1. echo 'wyswietl';


Powinno dac pozadany efekt. W pliku includowanym mysa byc struktury, ktore beda wyswietlac.


jak chcesz by sie zmienialo w divie to najlepiej jest zrobic przekazywania w ktora strona ma byc wyswietlana to co takiego mozesz napisac

plik.php
  1. switch($_GET['page'])
  2. {
  3. case 'strona1':
  4. echo 'strona1';
  5. break;
  6. case 'strona2':
  7. echo 'strona2;
  8. break;
  9. }


index.php
  1. echo '<div>';
  2. include('plik.php');
  3. echo '</div>';


i powinno dzialac. Choc to jest takie rozwiazanie posrednie, a raczej sie to powinno zrobic na klasach i z odpowiednim zabezpieczeniem. Polecam topic o bezpieczenstwie
Nightss
plik
index.php
  1. <div id="news">
  2. include('news.php');
  3. </div>



plik news.php

  1. $wartosc = $_GET['str1'];
  2.  
  3. if (!isset($wartosc)) {
  4. $str1 = 0;
  5. } else {
  6. $str1 = $wartosc;
  7. }
  8.  
  9. $str2=5;
  10.  
  11. $wynik = mysql_query ("SELECT * FROM News WHERE ok=1 ".
  12. "ORDER BY Id DESC LIMIT ". $str1 .",". $str2 ."");
  13.  
  14. if (isSet($_GET['Id']) && $_GET['Id']>0)
  15. {
  16. $wynik = mysql_query ("SELECT * FROM News WHERE Id=".$_GET['Id'].
  17. " AND ok=1;");
  18. if ($wynik && $rekord = mysql_fetch_assoc ($wynik)) { // jest news
  19. print "<h2>".$rekord['Naglowek']."</h2><p>".$rekord['TXT']."</p>";
  20. "</i></p>";
  21. } else {
  22. print "Nie ma newsa o takim numerze\n";
  23. }
  24. print "";
  25. } else {
  26. print "";
  27.  
  28.  
  29.  
  30. }
  31.  
  32. while ($wynik && $rekord = mysql_fetch_assoc ($wynik)) {
  33.  
  34. echo("<table id='tb'>");
  35. echo("<tr>");
  36. echo("<td id='n'>".$rekord['Naglowek']."</td>");
  37. echo("<td id='d'>".$rekord['Data']."</td>");
  38. echo("</tr>");
  39. echo("<tr>");
  40. echo("<td td colspan='2' id='t'>".$rekord['Tresc']."");
  41.  
  42. echo("<div id='lin'><a href=\"index.php?Id=".$rekord['Id']."\">wiecej</a></div></td>"); // z tym mam problem udało mi się go doraźnie rozwiązać ale pager przelatuje pod spód wyświetlonego newsa ale reszta znika
  43.  
  44. echo("</tr>");
  45. echo("</table>");
  46. }
  47.  
  48. $rec=mysql_fetch_assoc(mysql_query('SELECT count(*) as ile FROM News'));
  49.  
  50. for ($j=1; $j<$rec['ile']; $j++) {
  51.  
  52.  
  53. if ($j == 1) {
  54. $str1=0;
  55. }
  56. else {
  57. $str1=$str1+$str2;
  58. }
  59.  
  60.  
  61. if ($str1>$rec['ile']) {
  62. break;
  63. }
  64. else {
  65.  
  66. echo ' [ ';
  67.  
  68. echo '<a href="index.php?str1='. $str1 .'">'.$j.'</a>';
  69. echo ' ] ';
  70.  
  71. }
  72.  
  73. }
  74.  
  75.  
  76. ?>
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
neosatan
rozdzielaj warstwe wyswietlania od warstwy obliczeniowej. ulatwia zarzadzanie kodem.

<div id = 'lin'> jest raczej niepoprawne, poniewaz parser (wedle mojej wiedzy) potraktuje to, ze id tego diva jest literalnie 'lin' (parser nie interpretuje apostrofow).
zmien to na cudzyslow i zobacz co sie stanie.

spogladajac na kod to powinien dzialac.

jak uzywasz echo to (gdy nie maja byc interpretowane zadne zmienne) uzywaj apostrofow nie cudzyslowi. chodzi o wydajnosc.

linia 20, jest tam string bez wyswietlania lub czegokolwiek...

prawdz ostatniego if'a, jest tam break (?), choc nie wydaje sie, ze nie potrzebny jest tam. Sprawdz jakie wartosci przyjmuja te zmienne i zobacz jak sie wyswietla.
Nightss
Kod działa tylko jest mankament z tym że skrypt news.php wyświetla listę wiadomości gdy klikniemy w więcej (linia 42) to lista ginie i wyświetla się treść całej wiadomości ale pod nią przelatuje pager (linia 68) nie wiem jak zrobić żeby nie przelatywał.
neosatan
Jezeli chodzi Ci o to by pager sie nie pokazywal (bo stwierdzenie przelatuje mi nic nie mowi) to po prostu skasuj linie od 61 do 73 i wpisz cos takiego zamiast tych linii.

  1. if(!isset($_GET['Id']))
  2. {
  3.  
  4. echo ' [ <a href = "index.php?str1='.$str1.'">'.$j.'</a> ]';
  5.  
  6. }

Nightss
Dziękuje za pomoc bardzo dziękuje udało mi się zrobić z twoją pomocą.

  1. if ($str1>$rec['ile']) {
  2. break;
  3. }
  4. else {
  5.  
  6.  
  7. if(!isset($_GET['Id']))
  8.  
  9. {
  10.  
  11.  
  12.  
  13. echo ' [ <a href = "index.php?str1='.$str1.'">'.$j.'</a> ]';
  14.  
  15.  
  16.  
  17. }
  18. }
  19. }
  20. ?>
  21.  


Zrobiłem tak i po kliknięciu więcej następuje przeładowanie strony wyświetla się cała treść a pager nie wyświetla się na końcu tej wiadomości


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.