www.WebTips.pl: Include razy dwa - www.WebTips.pl

Skocz do zawartości


Strona 1 z 1

Include razy dwa

#1 Użytkownik nie jest zalogowany   snes38 

  • Nowicjusz
  • Grupa Użytkownik
  • Postów 23
  • Rejestracja 15 lut 07

Napisano 18 marzec 2010 - 22:21

Czy da sie jakos zrobic tak aby mozna bylo includowac strone która sie wczytuje z juz includowanej strony?
Np jest sobie strona index.php na niej includuje np text.php i jak zrobic aby po kliknieciu w link w text.php strona w linku includowala sie w index.php?
0


Strona 1 z 1

Odpowiedzi do tego tematu

#2 Użytkownik nie jest zalogowany   procio1441 

  • Bywalec
  • PipPip
  • Grupa Użytkownik
  • Postów 247
  • Rejestracja 28 lis 09
  • Miejscowość$_POST["dom"]

Napisano 19 marzec 2010 - 09:09

Może header() ?
Masz własną stronę www? A więc, dlaczego by się nią nie pochwalić? http://link4u.org.pl/
0

#3 Użytkownik nie jest zalogowany   Session 

  • Bywalec
  • PipPip
  • Grupa Użytkownik
  • Postów 239
  • Rejestracja 23 lut 09
  • MiejscowośćTarnów

Napisano 19 marzec 2010 - 12:38

Nie wiem, czy dobrze myślę, że o to chodzi, ale napisze. Chcesz po prostu w danym miejscu strony wczytać (wkleić, za pomocą include) zawartość strony do index-u. Najlepiej wtedy przesłać nazwę pliku getem i potem w PHP, ewentualnie w JS po prostu wklejać zawartość danego pliku.
Po prostu do linku do dajesz jakąś zmienną z nazwą pliku:
<a href="index.php?page=nazwa">Nazwa</a>

A potem tylko PHP:
function page(){
switch($_GET["page"]){
case 'nazwa': include("nazwa.php"); break;
case 'nazwa2': include("nazwa2.php"); break;
default: echo'Podano nieprawidłowy plik'; return 1;
}
}

i w miejscu gdzie chcesz to wyświetlić to dajesz (w index):
$val=0;
if(isset($_GET["page"])){
$val=page();
}
elseif(!isset($_GET["page"]) || $val==1){
include("text.php");
}


Można też dynamicznie zaincludować pliki PHP używając AJAX-a, a w przypadku zwykłego HTML to prawdopodobnie wystarczy innerHTML.

Jeśli chodzi o AJAX-a to troche przerobiony kod z w3c schools:
var xmlhttp
function dolacz(str)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  }
var url="dołącz.php";
url=url+"?page="+str;
url=url+"&sid="+Math.random();
document.getElementById("dolacz_tu").innerHTML="";
document.getElementById("loader").style.background="loader.gif";
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("loader").style.background="";
document.getElementById("dolacz_tu").innerHTML=xmlhttp.responseText;
}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}

plik dolacz.php wygląda wtedy tak samo jak przedtem czyli:
function page(){
switch($_GET["page"]){
case 'nazwa': include("nazwa.php"); break;
case 'nazwa2': include("nazwa2.php"); break;
default: echo'Podano nieprawidłowy plik'; return 1;
}
}
$val=0;
if(isset($_GET["page"])){
$val=page();
}
else{
include("text.php");
}
if($val==1){
include("text.php");
}

a do index-u dodajesz sobie kod u miejscu gdzie to ma się wyświetlać:
<div id="dolacz_tu"></div><div id="loader"></div>

Tylko, że link wygląda wtedy tak:
<a href="/" onclick="dolacz("nazwa");">Nazwa</a>
Dorobiłem też loader, żeby zmiana była widoczna, musisz sobie taki loader umieścić w głównym katalogu, a możesz sobie go wygenerować tu: KLIK. To, że linki będą w text.php w niczym nie przeszkadza.
No i po co to czytasz ?
Pomocy na PW i GG nie... a zresztą kto by chciał mojej pomocy... ;)

Dołączona grafika
Dołączona grafika
0

Strona 1 z 1


Szybka odpowiedź

  

Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych