Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmiana częsci strony - jakiej funkcji użyć ?
Forum PHP.pl > Forum > Przedszkole
jerry1984
Witam

Jakiej funkcji mam użyć aby zmieniała mi się jedynie środkowa część strony tak zwana "content".
Mam stronkę Ksiegarnia, jeśli ktoś kliknie na tytuł jest przenoszony na inną stronę,
a ja chcę aby wszytko działo się na mian page.Bo chyba nie muszę kopiować zawartości index'u i umieszczać w każdej podstronie jak to się robi w html'u.
Oto skrócona część index.php:
  1. <div id="content">
  2.  
  3.  
  4. <?php
  5. include ("promocja.php");
  6. ?>
  7.  
  8.  
  9. </div>


zawartośc promocja.php

  1. <?php
  2. // Wyświetli jedynie nazwę, tytuł i cenę.
  3.  
  4. while ($row = mysql_fetch_array($results)) {
  5. extract($row);
  6.  
  7. echo "<div align=\"center\">" ;
  8. echo "<div class=\"box\">" ;
  9. echo "<div class=\"box-header\">";
  10. echo "<div class=\"box-title\">" ;
  11. echo "<p><a href=\"shoping/getprod.php?prodid=" . $products_prodnum ."\">";
  12. echo $products_name;
  13. echo "</a>";
  14. echo $spacja;
  15. echo "<span class=\"color_promocji\">" . $products_price . " zł</span></p>";
  16. echo "<span>[".$products_author."]</span>";
  17. echo "</div>";
  18. echo "</div>";
  19. echo "<div class=\"box-content\">" ;
  20. echo "<a href=\"shoping/getprod.php?prodid=" . $products_prodnum ."\">";
  21. echo "<img src=" . $img ." alt=" . $products_name ." title=" . $products_name ." width=\"100px\" height=\"150px\" />";
  22. echo "</a>";
  23. echo "<br />";
  24. echo "<div class=\"box_text\"><h4>" . $products_info . "<br>Cena: <span class=\"cena_promocyjna\">" . $products_oldprice . " zł</span></h4></div>";
  25. echo "<br />";
  26. echo "<div class=\"info\">";
  27. echo "<table class=\"border\">";
  28.  
  29.  
  30. echo "<tr>";
  31. echo "<p><td><a href=\"shoping/modcart.php?action=add\"><img src=\"img/koszyk.png\"</td><td>Ddodaj do koszyka.</td></p>";
  32. echo "<p><td><a href=\"shoping/getprod.php?prodid=" . $products_prodnum ."\"><img src=\"img/info.png\"</td><td>Inromacje o książce.</td></p>";
  33. echo "</tr>";
  34. echo "</p>";
  35.  
  36. echo "</table>";
  37. echo "</div>";
  38.  
  39. echo "</div>";
  40. echo "</div>";
  41. echo "</div>";
  42. echo "<br>" ;
  43. }
  44. ?>


Jak to zrobić aby po kliknięciu na tytuł książki, zmieniał się tylko środek strony ?


pmir13
Linki do tych książek musisz zmienić z getprod.php na index.php, na przykład index.php?prodid=0001 a w index.php tam gdzie masz sekcję content sprawdzać czy w $_GET jest jakiś id książki i jeśli tak to zamiast listy książek wyświetlać szczegółowy opis (czyli to co robisz w getprod.php), czyli
  1. if( isset($_GET['prodid']) )
  2. // pokaz opis produktu, być może include ("getprod.php"); po przeróbkach, nie wiemy co tam jest
  3. else
  4. include ("promocja.php");

Możesz tam dołożyć więcej warunków jeśli jeszcze coś innego chcesz tam pokazywać.
jerry1984
Może również pokażę zawartość,
getprod.php :
  1. <html>
  2. <head>
  3. <title><?php echo $products_name; ?></title>
  4. </head>
  5. <body>
  6. <div align="center">
  7. <table cellpadding="5" width="80%">
  8. <tr>
  9. <td><?php echo "<img src=" . $img ." alt=" . $products_name ." title=" . $products_name ." width=\"100px\" height=\"150px\" />"?></td>
  10. <td><strong><?php echo $products_name; ?></strong><br />
  11. <?php echo $products_proddesc; ?><br \>
  12. <br>Identyfikator: <?php echo $products_prodnum; ?>
  13. <br>Data dodania: <?php echo $products_dateadded; ?>
  14. <br>Cena: <?php echo $products_price; ?> zł<br />
  15. <form method="POST" action="modcart.php?action=add">
  16. Sztuk: <input type="text" name="qty" size="2"><br />
  17. <input type="hidden" name="products_prodnum"
  18. value="<?php echo $products_prodnum ?>">
  19. <input type="submit" name="submit" value="Dodaj do koszyka">
  20. </form>
  21.  
  22. <form method="POST" action="cart.php">
  23. <input type="submit" name="submit" value="Wyświelt zawartość koszyka">
  24. </form>
  25. </td>
  26. </tr>
  27. </table>
  28. <hr width="200">
  29. <p><a href="../strona/index.php">Wróć do strony głównej</a></p>
  30. </div>
  31. </body>
  32. </html>
  33.  


nie wiedziałem, że może się przydać, a tym czasem sprawdzę tę funkcję.

EDIT:

nie wychodzi jak mówisz.
Jeśli zmienię "getprod.php?prodid=" na "index.php?prodid=" nie wyświetli się zawartość getprod.php.
Dałeś wskazówkę którą postaram się rozwiązać, jeśli ktoś da inną chętnie przetestuję.
pmir13
Cytat
Jeśli zmienię "getprod.php?prodid=" na "index.php?prodid=" nie wyświetli się zawartość getprod.php

Bo ma się wyświetlać zawartość index.php, przecież o to chodzilo w linkach.
A tam gdzie jest komentarz //pokaz opis produktu musisz wstawić to co robisz w getprod by ten opis wyświetlić.
kill15
hmm


  1. //index.php?prodid=getprod
  2. $lol = $_GET['prodid'];
  3.  
  4. if($lol == 'getprod');
  5. {
  6. $lol2 = "$lol.php";
  7. include ("$lol2");
  8. }
  9.  
  10. // coś takiego??
jerry1984
Cytat(kill15 @ 24.04.2011, 00:07:24 ) *
hmm


  1. //index.php?prodid=getprod
  2. $lol = $_GET['prodid'];
  3.  
  4. if($lol == 'getprod');
  5. {
  6. $lol2 = "$lol.php";
  7. include ("$lol2");
  8. }
  9.  
  10. // coś takiego??


nie wiem czy dobrze zrozumiałem ale powstawiałem tak:

  1. $products_prodnum = $_GET['prodid'];
  2.  
  3. if($products_prodnum == 'getprod');
  4. {
  5. $getprod = "$promocja.php";
  6. include ("$getprod.php");

Zmieniłem również z "getprod.php?prodid=" na "index.php?prodid=getprod"

i nie wychodzi, błędy wyskakują, jeśli coś palnąłem to tylko moja nie wiedza początkującego wstydnis.gif
Proszę o poprawienie mnie. Już zmęczony jestem siedzę na tym od 15:00.
Akairis
jesli link jest taki: <a href=\"shoping/getprod.php?prodid=" . $products_prodnum ."\">
to poniższy warunek musi być w pliku getprod.php

  1.  
  2. if(isset($_GET['prodid'])){
  3. $produkt = $_GET['prodid'];
  4.  
  5. if($produkt == 'getprod'){
  6. include ('promocja.php');
  7. }
  8. }
  9.  



Choć tak do końca nie wiem o co Ci chodzi dokładnie.
konole
Cytat(jerry1984 @ 23.04.2011, 23:24:12 ) *
nie wiem czy dobrze zrozumiałem ale powstawiałem tak:

  1. $products_prodnum = $_GET['prodid'];
  2.  
  3. if($products_prodnum == 'getprod');
  4. {
  5. $getprod = "$promocja.php";
  6. include ("$getprod.php");

Zmieniłem również z "getprod.php?prodid=" na "index.php?prodid=getprod"

i nie wychodzi, błędy wyskakują, jeśli coś palnąłem to tylko moja nie wiedza początkującego wstydnis.gif
Proszę o poprawienie mnie. Już zmęczony jestem siedzę na tym od 15:00.

Proponuję ci przeanalizować to, co zrobiłeś.
Cytat
Przypisz do $products_prodnum -> $_GET['pdodid']
Jeśli $products_prodnum ma wartość 'getprod'
Zmienna $getprod ma wartość (!) zmiennej $promocja i dodaną końcówkę .php // Gdzie jest zmienna $promocja?
Dołącz plik o nazwie -> zmienna $getprod i końcówka .php

Przeanalizuj sobie to i sprawdź, czy ma sens. Tym sposobem dojdź do dobrego wyniku... Chciaż, pan powyżej mnie już podał ci rozwiązanie.
mat-bi
Mozna to zrobić także przez bufor tak, jak jest to we frameworkach - ob_start i ob_clean
kill15
Nie ogarniam autora...
Ale spróbuje wyjaśnić:

masz link np: www.twojastrona.pl/index.php?lol=wartosc


wartość może być różna a żeby ją wczytać używasz:
$_GET['lol']; - w tym wypadku.
potem robisz warunek w index w odpowiednim miejscu i jeśli ten warunek jest spełniony to includujesz plik.
Warunek to jak już mówiłem:

  1. if(isset($_GET['lol']));
  2. $loll = $_GET['lol'];
  3. include("$loll.php"); // jeżeli by nie działało tak to przypisz wcześnie tak:
  4. // $lol2 = "$loll.php"; i zamiast $loll.pl w include daj $lol2


kadlub
sporo osób się tutaj wypowiedziało więc ja sie odniosę do twojego pierwszego postu.
robisz sobie menu z tytułem książki w index.php
  1. <a href="index.php?id=5">tytuł książki</a>

jeśli opis książki przechowujesz w bazie to te id które wyślesz linkiem wstawiasz do zapytania, nie wiem jak ono u ciebie wygląda
  1. $results="select * from tytuly where id_tytul='".$_GET['id']."'"

takie przykładowe zapytanie i wtedy będą sie wyświetlały dane dotyczące tej książki
oczywiście w index.php musisz mieć to
  1. <div id="content">
  2.  
  3.  
  4. <?php
  5. include ("promocja.php");
  6. ?>
  7.  
  8.  
  9. </div>
kill15
up:

jeżeli chodzi o pobranie z bazy to owszem wystarczy: z get pobrać wartość zrobić zapytanie i wyświetlić ;>

i nie trzeba żadnych warunków
kadlub
Cytat(kill15 @ 24.04.2011, 08:28:42 ) *
up:

jeżeli chodzi o pobranie z bazy to owszem wystarczy: z get pobrać wartość zrobić zapytanie i wyświetlić ;>

i nie trzeba żadnych warunków

mi się wydaje że o to mu chodzi
tylko pytanie czy zna id tej książki czy szukać po tytule ale wtedy tytuły ni mogą sie powtarzać
jerry1984
Witam

Właśnie wróciłem ze Świąt i dzięki waszym podpowiedzią udało mi się dokonać mój zamierzony cel Ksiegarnia.Działają podstrony.
Chciałem się jeszcze dowiedzieć innej kwestii, gdy mam informacje o książce i chcę dodać do koszyka zakupów po przez przycisk "Dodaj do koszyka" czy powinienem używać takiej samej funkcji jak tą którą użyłem aby wyświetlić podstrony ?

  1. $products_prodnum = $_GET['prodid'];
  2.  
  3. if(!empty($products_prodnum)) {
  4.  
  5. if(is_file("shoping/getprod.php")) include "shoping/getprod.php";
  6.  
  7. else echo "<br />Nie ma takiej strony.";
  8. }



Próbowałem zmodyfikować powyższy skrypt, lecz zawartość koszyka wyświetla się jednocześnie z informacją o książce bez klikania "Dodaj do koszyka", a robiłem tak:
  1. $add = $_GET['action'];
  2.  
  3. if(!empty($add)) {
  4.  
  5. if(is_file("shoping/modcart.php")) include "shoping/modcart.php";
  6.  
  7. else echo "<br />Nie ma takiej strony.";
  8. }
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.