Specifieke div includen ipv complete pagina
Beste,
Na een lange zoektocht op google en eindeloos proberen toch maar de bittere pil can trots ingeslikt en het maar vragen aan mensen die er meer verstand van hebben.
Normaal als je de functie 'include' gebruikt wordt de gehele source pagina gekopieerd en geplakt in de target pagina.
Op de source pagina, staan verscheidene div'jes met ieder een eigen Id.
Nu wil ik alleen 1 div (met uniek Id) includen in mijn target pagina.
Dus in plaats van de hele pagina te includen alleen maar 1 specifieke div.
Hoe krijg ik dit voor elkaar?
Na een paar dagen zoeken wel heel benieuwd naar het antwoord.
Als voorbeeld bestandsnamen:
'/index.php' (target pagina waar de include in staat)
'/map/map/divjes.php' (source pagina waarvan maar 1 div geinclude moet worden)
Hopelijk hebben jullie het antwoord.
Mvg,
Drewes
Na een lange zoektocht op google en eindeloos proberen toch maar de bittere pil can trots ingeslikt en het maar vragen aan mensen die er meer verstand van hebben.
Normaal als je de functie 'include' gebruikt wordt de gehele source pagina gekopieerd en geplakt in de target pagina.
Op de source pagina, staan verscheidene div'jes met ieder een eigen Id.
Nu wil ik alleen 1 div (met uniek Id) includen in mijn target pagina.
Dus in plaats van de hele pagina te includen alleen maar 1 specifieke div.
Hoe krijg ik dit voor elkaar?
Na een paar dagen zoeken wel heel benieuwd naar het antwoord.
Als voorbeeld bestandsnamen:
'/index.php' (target pagina waar de include in staat)
'/map/map/divjes.php' (source pagina waarvan maar 1 div geinclude moet worden)
Hopelijk hebben jullie het antwoord.
Mvg,
Drewes
Gesponsorde koppelingen:
Srry..had iets verkeerds gepost
Gewijzigd op 21/10/2010 01:23:07 door Meddiecap B
Dat wil je helemaal niet: plaats de div'jes gewoon in verschillende bestanden.
Mocht je het toch willen:
Typefouten voorbehouden
Mocht je het toch willen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$filename = 'file.html';
$divId = 'div1';
// Verkrijg de inhoud, doe het op deze manier ipv DOMDocument::loadHTMLFile() omdat je zo PHP erin kan zetten
ob_start();
include $filename;
$html = ob_get_clean();
// Maak er een DOMDoc van
$dom = new DOMDocument();
$dom->loadHTML($html);
// Zoeken met xpath
$xpath = new DOMXPath($dom);
$query = '//div[@id=\''.$divId.'\']';
$divNode = $xpath->query($query)->item(0);
// En weer XML van maken
$div = $dom->saveXML($divNode);
?>
$filename = 'file.html';
$divId = 'div1';
// Verkrijg de inhoud, doe het op deze manier ipv DOMDocument::loadHTMLFile() omdat je zo PHP erin kan zetten
ob_start();
include $filename;
$html = ob_get_clean();
// Maak er een DOMDoc van
$dom = new DOMDocument();
$dom->loadHTML($html);
// Zoeken met xpath
$xpath = new DOMXPath($dom);
$query = '//div[@id=\''.$divId.'\']';
$divNode = $xpath->query($query)->item(0);
// En weer XML van maken
$div = $dom->saveXML($divNode);
?>
Typefouten voorbehouden
Dank je voor je antwoord, ziet er veel belovend uit, maar werkt helaas niet.
Die source pagina (waar de div opstaat) wordt door middel van allemaal server side php code opgebouwd.
Als ik het divje zou kunnen isoleren had ik dat al gedaan maar dat is niet mogelijk.
Ik heb dus iets van een client side include nodig...
In ieder geval bedankt voor de moeite
Toevoeging op 21/10/2010 14:35:09:
Om alle benoemingen en moeilijkheden uit de weg te gaan is het een stuk makkelijker om gewoon de adressen te posten:
De div (id="content) van http://www.lightningleiden.nl/wordpress/index.php moet in de div (id="nieuws) komen van http://www.lightningleiden.nl/bestuur.php
De content div wordt serverside helemaal opgebouwd en is alleen (in mijn ogen) goed te zien als je de bron van de pagina bekijkt in je browser.
Die source pagina (waar de div opstaat) wordt door middel van allemaal server side php code opgebouwd.
Als ik het divje zou kunnen isoleren had ik dat al gedaan maar dat is niet mogelijk.
Ik heb dus iets van een client side include nodig...
In ieder geval bedankt voor de moeite
Toevoeging op 21/10/2010 14:35:09:
Om alle benoemingen en moeilijkheden uit de weg te gaan is het een stuk makkelijker om gewoon de adressen te posten:
De div (id="content) van http://www.lightningleiden.nl/wordpress/index.php moet in de div (id="nieuws) komen van http://www.lightningleiden.nl/bestuur.php
De content div wordt serverside helemaal opgebouwd en is alleen (in mijn ogen) goed te zien als je de bron van de pagina bekijkt in je browser.
Gewijzigd op 21/10/2010 12:49:16 door Drewes Tebbes



