Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Podmienianie podstron
-Gość_kris-
post
Post #1





Goście







Witam wszystkich
Już pewnie znany jest to każdemu temat jednak ja nie znalazlem dokladnie tego o co mi chodzi i myśle ze jest to wlasciwe miejsce gdzie dostane odpowiedz. Chodzi mi o podmienianie podstron, moze pokaze jak to wyglada. Mam 3 pliczki index.php, id_funkcji.php, funkcje_wyswietl.php..

index.php wyglada;
  1. <?php 
  2.  echo '<table border=1 width = \"100%\" height=\"100%\" ></p>';
  3.  echo '<tr><td>';
  4.  include('id_funkcji.php');
  5.  echo '</td><td>';
  6.  include('id_funkcji.php');
  7.  echo '</td></tr></table>'; 
  8. ?>


id_funkcji.php wyglada;
  1. <?php
  2. include_once('funkcje_wyswietl.php');
  3.  
  4.  $id = $_GET['id'];
  5.  
  6.  $i++;
  7.  
  8.  if ($id == 1 || $i==1) lewa();
  9.  if ($id == 2 || $i==2) prawa();  
  10. ?>


funkcje_wyswietl.php wyglada;
  1. <?php
  2.  
  3. function lewa()
  4. {
  5. $i++;
  6. $b="nazwa$i";
  7. echo "<tablce border=1 width = \"50%\" height=\"100%\">"; 
  8. echo "<tr><td>";
  9. echo "<a href=\"id_funkcji.php?id=2\">$b</a></br>";
  10. echo "</td></tr></table>";
  11.  }
  12.  
  13.  function prawa()
  14. {
  15. $i++;
  16. $b="nazwa$i";
  17. echo "<tablce border=1 width = \"50%\" height=\"100%\">"; 
  18. echo "<tr><td>";
  19.  echo "<a href=\"id_funkcji.php?id=1 \">$b</a></br>";
  20.  echo "</td></tr></table>";
  21.  }
  22.  
  23.  ?>


Chodzi o to zeby nie byla przeladowywana cala strona tylko ta do ktorej sie odnosze klikajac na linki, dla sprawdzenia probowalem zrobic licznik gdzie po najechaniu na link danej strony zwieksza mi sie licznik na drugiej stronie zeby zobaczyc czy przypadkiem nie zostaje wczytywana cala strona. Linki wogole to nie dzialaja ale dlatego ze za kazdym razem jest wczytywana strona albo lewa albo prawa. Mam nadzieje ze zrozumieliscie o co mi chodzi, licze na wasza pomoc. Nie ukrywam ze zalezy mi na czasie. Dzieki z gory.


Poprawiłem
~mike_mech
Go to the top of the page
+Quote Post
-Gość_kris-
post
Post #2





Goście







Zapomnialem dopisać ze mam już zrobiony wiekszy projekt ktory podobnie dziala jak to opisalem jednak caly jest zrobiony na freimset a wiem ze z ramkami jest róznie dlatego też chce go przerobic na tabele. Podsumowując chodzi o to zeby index.php zostal wczytany raz natomiast strony lewa i prawa byly podmieniane odwolujac sie do nich klikajac na linki.
Go to the top of the page
+Quote Post
quality
post
Post #3





Grupa: Zarejestrowani
Postów: 172
Pomógł: 9
Dołączył: 13.02.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


No jezeli dobrze rozumiem to chodzi Ci o to ze po wcisnieciu na link to lewa_strona.php ma sie otwierac w innej ramce tak? To robisz odnosnik i i w target wpisaujesz nazwe tej ramki np:
  1. <a href="lewa_strona.php" target="nazwa_frameset"> link</a>


Jezeli o to chodzi ;]


--------------------
Go to the top of the page
+Quote Post
-Gość_kris-
post
Post #4





Goście







Dziekuje za odpowiedz ale nie zupelnie o to mi chodzi, w sumie ja takze nie wiem o co mi chodzi bo juz sie calkowicie zakrecilem: stronke która ciągle ulepszam to sklep internetowy
znajdujący się na www.colpex.avx.pl może przedstawie dokladnie o co mi chodzi. Cała strona jest zrobiona na frameset i po krotce kilka linijek kodu co się znajduje w poszczegolnych plikach.

1. plik index.php
  1. <?php
  2.  require ('lacz_strony.php');
  3. echo '<frameset cols="*,1050px,*" frameborder=0 >';
  4. echo '<frame name="margines" scrolling="no" >';
  5. echo '<frameset rows="170px,*" frameborder=0>';
  6. //echo '<frame name="margines" scrolling="no" >';
  7. echo '<frame name="naglowek" src="id_funkcji.php?id=23" scrolling="no" >';
  8.  
  9.  echo '<frameset cols="185px,690px , 165px" frameborder=0 >';
  10. echo '<frame name="lewa" src="id_funkcji.php?id=20" scrolling="no" >';
  11. echo '<frame name="srodek" src="id_funkcji.php?id=1" scrolling="no" >';
  12. echo '<frame name="prawa" src="id_funkcji.php?id=21" scrolling="no" >';  
  13.  
  14. echo '</frameset>';
  15.  echo '<noframes>';
  16. echo 'Twoja przeglądarka nie obsługuje ramek.';
  17. echo '</noframes>';
  18. echo '</frameset>';
  19. ?>
  20.  

2. plik lacz_strony.php
  1. <?php
  2. include_once('funkcje_prawid_dane.php');
  3. include_once('funkcje_wyswietl.php');
  4. include_once('lista_funkcji.php');
  5. include_once('funkcje_pobierz.php');
  6. include_once('funkcje_zamowien.php');
  7. ?> 
  8.  


3. plik id_funkcji.php w którym są numery funkcji które chce wywołać:
  1. <?php
  2. require ('lacz_strony.php');
  3.  $id = $_GET['id'];
  4.  if ($id == 1) str_lewa(); 
  5. ?>
  6.  


4. plik z funkcjami wywolanymi przez id z pliku id_funkcji.php , przykladowo:
  1. <?php
  2. function str_lewa()
  3. {
  4. $idkat = $_GET['idkategori'];
  5.  
  6. $tablica_podkategori = pobierz_podkategorie($idkat);
  7. wyswietl_podkategorie($tablica_podkategori);
  8. }
  9. ?>
  10.  


5.plik funkcje_wyswietl.php w którym są rózne formularzei generalnei wszystko to co mi sie wyswietla wraz z linkami, przykladowo:
///funkcja wyswietlajaca podkategorie danej kategori po ktorych kliknieciu otwiera mi sie to na stronie srodkowej
  1. <?php
  2.  
  3. function wyswietl_podkategorie($tablica_podkategori)
  4. { 
  5. foreach ($tablica_podkategori as $rzad)
  6. {
  7.  $a= $rzad['idpodkategori'];
  8.  $b= $rzad['nazwapodkategori'];
  9. $url = 'id_funkcji.php?id=2&idpodkategori='.$a;
  10. $tytul = $b; 
  11. echo "<a href =\"$url\" target=\"srodek\" class=\"menu_pkat1\">$b</a>"; 
  12. }
  13. }
  14.  
  15. ?>

To wszystko dziala, chcialem ci zakreslic jak to mam sobie rozplanowane. Chce zeby to bylo tak jak jest tylko zeby zamiast frameset uzywac tabel.
Ale tez aby nie wczytywać np. po wcisnieciu na dany link z lewej strony calej strony tylko zeby lewa strona zostawala gdzie jest a zmieniala sie np. prawa.
Ale też zeby nie odwolywać się do index.php. Bo wtedy znowu będzie wczytywana cala strona. Także chce uniknac tego zeby nie robić w funkcji id_funkcji.php includów , zeby to zostalo tak jak jest bo czytalem na niektórych forum ze mozna stosowac include i bedzie oki ale wtedy trzebabybylo zrobic bardzo duzo plików a ja chce sie odwolywac do funkcji czyli zostawic to tak jak jest. Na podanej stronce colpex chce zeby to dzialalo tak jak dziala ale zeby bylo to zrobione na tabelach jesli wogole tak sie da.
Go to the top of the page
+Quote Post
imashjan
post
Post #5





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 30.11.2005

Ostrzeżenie: (0%)
-----


a czy tu nie chodzi o takie cos?
  1. index.php?a=strona

questionmark.gif


--------------------
mali ludzie tworzą wielkie rzeczy, przez co stają się wielkimi
Go to the top of the page
+Quote Post
-Gość_kris-
post
Post #6





Goście







No znowu nie, wlasnie chce zeby index wczytal sie tylko raz przy uruchamianiu i zeby pozniej podmieniac strony tzn klikajac na link z lewej ma sie cos otwierac na srodku ale tylko na srotku np. zeby nie bylo tak ze zostaje wczytany srodek ale tez i naglowek itd.. wydaje sie jednak ze bez ramek nic sie nie da zrobic, zostawie to chyba tak jak mam bo jest dobrze tyle ze na tabelach napewno wygladaloby to znacznie lepiej. Dzieki i juz nie bede wracal do tego,zostawie to tak jak mam na ramkach. Dzieki za pomoc.
Go to the top of the page
+Quote Post
djmassive
post
Post #7





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 13.09.2005
Skąd: Jędrzejów

Ostrzeżenie: (10%)
X----


Jeżeli dobrze rozumię, chcesz aby Twój sklep opierał się na tabelach tj.

header (czyli logo, ew banner i podst menu)
lewa (np. spis kategorii)
środek (jakieś tam produkty w promocji lub nie)
prawa (np. wyszukiwarka, logowanie i koszyk)

więc co mogę doradzić, ramki rzeczywiście nie są najlepszym rozwiązaniem, też je stosowałem do pewnego momentu. Musisz zrobić mniej więcej tak w pliku index.php

  1. <?php
  2.  
  3. <table width=100% height=100% border=0>
  4. <tr>
  5. <td>
  6.  
  7. ?>

teraz tutaj musisz zrobić sobie tabele górną (tzw. naglowek czy jak kto tam nazywa)
  1. <?php
  2.  
  3. <table width=100% height=100>
  4. <tr>
  5. <td>
  6. [php]
  7. tutaj wpisujesz sobie np. obrazek itp (zakładamy, że to jest logo)
  8.  
  9.  
  10. </td>
  11. </tr>
  12. <tr>
  13. <td>
  14. ?>



podstawowe menu

  1. <?php
  2. </td>
  3. </tr>
  4. </table>
  5. ?>

mamy górę smile.gif jest cud - teraz robimy to samo, przyczym dzielimy tabele na 3 części, które dadzą nam lewy, środek i prawy panel

  1. <?php
  2.  
  3. <table width=100% height=100%>
  4. <tr>
  5. <td width=30%>tutaj masz lewy panel (1)*</td>
  6. <td width=30%>tutaj środek(2)*</td>
  7. <td width=30%>tutaj prawy(3)*</td>
  8. </tr>
  9. </table>
  10. </td>
  11. </tr>
  12. </table>
  13.  
  14. ?>

zakładając, że lewy i prawy się nie zmienia specjalnie, w miejsce(x) * wstawiasz kolejno najprostszą zmienną:

(1)* > zmienna np. include('$lewypanel');
(2)* > include('$srodek');
(3)* > include('$prawy');

i w ten oto sposób masz prosty szablon, który jeżeli przekształcisz odpowiednio, możesz wysyłać 'obraz' danego panela poprzez zmienne ?lewypanel=$nazwa_pliku,lub coś tam innego smile.gif

Najprostrzy chyba sposób szablonowy, ale nie najlepszy, siądziesz to pomyślisz smile.gif i napewno zjarzysz już jak to można zrobić smile.gif

Ten post edytował djmassive 6.03.2006, 05:00:58


--------------------
.:: www.theprotypes.com - muzyka house - pobierz mp3 - zapraszam serdecznie ::.
Go to the top of the page
+Quote Post
-z4l.pl-
post
Post #8





Goście







Próbowałem ten kod wcisnąć w w tabele ale coś nie idzie... <sadface>

chodzi mi o to by na początku wgrywania strony wyświetlany był plik 'newsy.php',
a gdy wejde w link to na jego miejscu byłby np. rejestracja.php... mógłby ktoś mi pomóc? worriedsmiley.gif
Go to the top of the page
+Quote Post
-z4l.pl-
post
Post #9





Goście







tzn. ja już tabele mam i wszystko tylko potrzebuje ten kawałek kodu, że jak ktoś wejdzie na strone na na środku w tabeli będzie wyświetlany najpierw 'newsy.php', a jak wejdzie w inny link to inna zawartość w ich miejsce... tongue.gif
Go to the top of the page
+Quote Post
djmassive
post
Post #10





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 13.09.2005
Skąd: Jędrzejów

Ostrzeżenie: (10%)
X----


Nie widze innego wyjścia jak w każdym pliku który ma być wyświetlany wykorzystać pierw tabele exclamation.gif i po kłopocie exclamation.gif

to co wyżej napisałem - piszesz w index.php (gdzie w srodku) includujesz newsy.php?op=pokaz, kolejny plik to samo - walisz tabele jak wczesniej i w srodku ustawiasz np. rejestracja.php?op=zarejestruj i po kłopocie


--------------------
.:: www.theprotypes.com - muzyka house - pobierz mp3 - zapraszam serdecznie ::.
Go to the top of the page
+Quote Post
popo
post
Post #11





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 15.07.2005

Ostrzeżenie: (0%)
-----


erm o ile dobrze zrozumialem to kris chce zeby strona dzialala tak jak na ramkach czyli przeladowuje sie fragment odpowiadajacy dawnej ramce a nie cala strona.

W zwiazku z powyzszym, jesli cala strona jest na tabelach czy divach to nie bardzo widze mozliwosc przeladowania jej fragmentu (w tym momencie jest to caly dokument a nie 2 lub 3 oddzielne jak na ramkach). Jedyne wyjscie zeby tylko fragmenty strony przeladowywyac to XMLHTTPRequest + javascript czyli tak zwany AJAX (wczytywanie kodu xml z serwera i dynamiczna zmiana zawartosci strony bezposrednio w przegladarce (jest do tego kilka klas gotowych)

btw w USA ponoc ktos AJAX'a opatentowal ?!?

Ten post edytował popo 7.03.2006, 17:00:41
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 14:00