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?
Strona 1 z 1
Include razy dwa
Strona 1 z 1
Odpowiedzi do tego tematu
#2
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/
#3
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 potem tylko PHP:
i w miejscu gdzie chcesz to wyświetlić to dajesz (w index):
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:
plik dolacz.php wygląda wtedy tak samo jak przedtem czyli:
a do index-u dodajesz sobie kod u miejscu gdzie to ma się wyświetlać:
Tylko, że link wygląda wtedy tak:
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.
Strona 1 z 1

Logowanie
Rejestracja
Pomoc
Dodaj odpowiedź
Cytuj



