PHP in AJAX möglich machen
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
aufruf
besagten inhalt
code
dank
datei
endung
header
inhalt
keks
klappen
kleines problem
meinung
papierkorb
rest
schritt
status
text
type
url
ursache
-
Hallo,
Ich würde wahnsinnig gerne meine Webseite nur mit AJAX nachladungen machen. Anti-JavaScript-Leute sollten mir nicht böse deswegen sein. Allerdings habe ich da ein kleines Problem. Ich will nämlich einen Inhalt aus meiner MySQL Datenbank auslesen und diesen Inhalt dann nach <div id="content"></div> Platzieren... soweit so gut...
Allerdings hab ich spaßhalber in den besagten Inhalt einfach "<?php echo 'Hallo, wie gehts?'; ?>, Danke gut" hineingetan.. Allerdings wird nur ",Danke gut" angezeigt. Nichteinmal dass der rest im Quelltext steht und halt nicht ausgeführt sondern nur geladen wird.
Das ist das Script, welches is verwende:function load_con(url) { if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("content").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","/ajax/content.php?url="+url,true); xmlhttp.send(); } function load_pagemap() { if (window.XMLHttpRequest) { xmlhttp2=new XMLHttpRequest(); }else{ xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp2.onreadystatechange=function() { if (xmlhttp2.readyState==4 && xmlhttp2.status==200) { document.getElementById("pagemap_box").innerHTML=xmlhttp2.responseText; } } xmlhttp2.open("GET","/ajax/pagemap.php",true); xmlhttp2.send(); } function load(contenturl, pagemap) { load_con(contenturl); if(pagemap==1) { load_pagemap(); } }
ich muss dann nurnoch load("startseite", "1"); machen und schon wird alles supi (außer PHP) geladen.
Das PHP Script ist ein ziemlich simples, sollte keine Probleme damit geben:<?php require('../con/connect.php'); if(empty($_GET['url'])) { $url = 'home'; }else{ $url = $_GET['url']; } $sql = 'SELECT * FROM `tp_pages` WHERE `url` = "'.$url.'"'; $result = $db->query($sql); if($result->num_rows) { while($row = $result->fetch_assoc()) { $sql2 = 'SELECT * FROM `tp_contents` WHERE `id` = "'.$row['contentid'].'"'; $result2 = $db->query($sql2); while($row2 = $result2->fetch_assoc()) { echo $row2['content']; } } }else{ $sql2 = 'SELECT * FROM `tp_contents` WHERE `id` = "2"'; $result2 = $db->query($sql2); while($row2 = $result2->fetch_assoc()) { echo $row2['content']; } } ?>
Vielen Dank für jede Hilfe. Zusätzlich gibts noch nen Keks für jeden der hilft :keks: -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das ist ungewöhnlich.
Solang das Ding die Endung PHP hat und vom Server als solches erkannt wird, solltes eigentlich geparsed werden. Der Rest läuft dann wie bei einem stinknormalen Ajax-Request ab.
Als würdest du eine gewöhnliche Textdatei oder sonst etwas abrufen.
Sicher, dass der Fehler nicht irgendwo bei deinem Ajax code liegt? -
liegt der ajax-code in einer .php-datei? denn dann müsste es klappen:
denn meiner meinung nach ist zwar "php in ajax" nicht möglich, aber "ajax in php", d.h., du kannst ajax-code in einer php-datei ausführen, und selbstverständlich auch php in einer php-datei , jedoch nicht php in einer ajax-datei (was auch immer ajax für eine dateiendung benutzt, ich geh mal davon aus, das es .js ist) -
Kurs 1 für anfänger:
Wie schreibe ich möglichst viel nichts aussagenden Text:
Schrit 1:
-Wiederhole was genau einen Post vor Dir schon gesagt wurde:
t-li schrieb:
liegt der ajax-code in einer .php-datei? denn dann müsste es klappen:
Schritt 2:
-Philosophiere dann noch ganz allgemein (und falsch ) über den Titel
t-li schrieb:
denn meiner meinung nach ist zwar "php in ajax" nicht möglich, aber "ajax in php", d.h., du kannst ajax-code in einer php-datei ausführen, und selbstverständlich auch php in einer php-datei , jedoch nicht php in einer ajax-datei (was auch immer ajax für eine dateiendung benutzt, ich geh mal davon aus, das es .js ist)
Zum Thema:
js-Code in der Funktion "load_con":
xmlhttp=new XMLHttpRequest();
xmlhttp.overrideMimeType('text/html');
und
var time = new Date().getTime()
xmlhttp.open("GET","ajax/content.php?url="+url+'&rnd='+time,true);
xmlhttp.send();
content.php:
<?
header("content-type: text/html; charset=iso-8859-1");
echo "hallo php!<br>" ;
?>
<div>
hallo, Html!
</div>
Hier ein Beispiel
kurz:
Mit content-type und overrideMimeType sorgst Du dafür das Dein Text nicht xml-interpretiert wird. (erste mögliche Ursache)
Mit var time verhinderst Du das der Inhalt von content.php beim nächsten aufruf aus der Cache des Browsers geholt wird.(Zweite mögliche Ursache)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage