kostenloser Webspace werbefrei: lima-city


PHP in AJAX möglich machen

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    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: :angel:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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?
  4. 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)
  5. 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)




  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!