Ajax?! Ich verstehe das nicht...

  • sowas gehört in eine PN und nicht in einen öffentlichen Thread.


    Bsp.:


    Person X ist ein Webentwickler und möchte sich Ajax anschauen.
    Die Person arbeitet ein Tuturial durch und Sie versteht es nicht.
    Die Person geht auf google.de (oder eine andere suchmaschiene) und sucht
    "Wie funktioniert Ajax?"


    Wenn die Person auf diese Seite stößt und der erste Beitrag, auf der Ihr blickt fällt etwas persöhnliches/privates ist und nix mit dem
    Thema zu tun ist, ist diese Person sicherlich schnell weg von dieser Seite.


    Gruß
    drPHIP132

  • Ein bisschen OffTopic neben dem tatsächlichen Thema ist in Ordnung.. wenn sie jetzt anfangen nur über das Projekt zu palabern wird es doof, also Ruhe jetzt hier es sei denn du weißt die Lösung ;)

  • Mein Script hat sehr genau was mit dem Thema zutun ;D (Auch wenn ich mein geschrieben habe so stammt der größte Teil des Scriptes übrigens auch aus einem Tut =) )

    PHP
    <span class="syntaxdefault"><br />  </span><span class="syntaxkeyword"><!--<br /></span><span class="syntaxdefault">    var request </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> false</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">// Request senden<br /></span><span class="syntaxdefault">    function setRequest</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">id</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /><br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">// Request erzeugen<br /></span><span class="syntaxdefault">        if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">window</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">XMLHttpRequest</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            request </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new XMLHttpRequest</span><span class="syntaxkeyword">();</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// Mozilla, Safari, Opera<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> else if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">window</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">ActiveXObject</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            try </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                request </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new ActiveXObject</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Msxml2.XMLHTTP'</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// IE 5<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> catch </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">e</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                try </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                    request </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new ActiveXObject</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Microsoft.XMLHTTP'</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// IE 6<br /></span><span class="syntaxdefault">                </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> catch </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">e</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{}<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">// überprüfen, ob Request erzeugt wurde<br /></span><span class="syntaxdefault">        if </span><span class="syntaxkeyword">(!</span><span class="syntaxdefault">request</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            alert</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Kann keine XMLHTTP-Instanz erzeugen"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            return false</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            var url </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"hw.php"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            </span><span class="syntaxcomment">// Request öffnen<br /></span><span class="syntaxdefault">            request</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">open</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'post'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> url</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> true</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            </span><span class="syntaxcomment">// Requestheader senden<br /></span><span class="syntaxdefault">            request</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">setRequestHeader</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Content-Type'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'application/x-www-form-urlencoded'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            </span><span class="syntaxcomment">// Request senden<br /></span><span class="syntaxdefault">            request</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">send</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'name='</span><span class="syntaxkeyword">+</span><span class="syntaxdefault">id</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            </span><span class="syntaxcomment">// Request auswerten<br /></span><span class="syntaxdefault">            request</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">onreadystatechange </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> interpretRequest</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">// Request auswerten<br /></span><span class="syntaxdefault">    function interpretRequest</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        switch </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">request</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">readyState</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            </span><span class="syntaxcomment">// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen<br /></span><span class="syntaxdefault">            case 4</span><span class="syntaxkeyword">:<br /></span><span class="syntaxdefault">                if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">request</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">status </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> 200</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                    alert</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"</span><span class="syntaxkeyword">+</span><span class="syntaxdefault">request</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">status</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">                </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                    var inhalt </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> request</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">responseText</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">                    </span><span class="syntaxcomment">// den Inhalt des Requests in das <div> schreiben<br /></span><span class="syntaxdefault">                    document</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">getElementById</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'items'</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">innerHTML </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> inhalt</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">                </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">                break</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            default</span><span class="syntaxkeyword">:<br /></span><span class="syntaxdefault">                break</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">  </span><span class="syntaxcomment">//--><br /></span><span class="syntaxdefault"> </span>


    Also ich rufe die Funktion "setRequest" mit der Variable "id" auf (z.B. der Name deines Buttons oder so ist aber nicht unbedingt nötig !!)
    Dann folgt die erstellung und überprüfung des Requestet ...
    dann kommt direkt diese Zeile:

    PHP
    <span class="syntaxdefault">var url </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"hw.php"</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span>


    Das ist die Datei die aufgerufen werden soll. Ich denke dir 4 request.xxx sind mehr oder weniger selbsterklärend...


    Dann rufe ich aus der Funktion herraus die Funktion "interpretRequest" auf, diese dient zum auswerten bzw. empfangen des Textes (oder was auch immer du lädst) Is ja auch kommentiert (wenna uch nicht von mir!)
    So und nun kommt das wonach du wenn ich mich nicht irre genau gefragt hast:

    PHP
    <span class="syntaxdefault"><br />                    var inhalt </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> request</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">responseText</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">                    </span><span class="syntaxcomment">// den Inhalt des Requests in das <div> schreiben<br /></span><span class="syntaxdefault">                    document</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">getElementById</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'items'</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">innerHTML </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> inhalt</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span>


    Der Inhalt der aus der hw.php kommt wird nun in den tag mit der id "item" geschrieben.
    In der hw.php (ist nur ein name bei mir..) brauch z.B. nur stehen

    PHP
    <?php echo "Test123"; ?>


    Dann steht in der Theorie nachher in dem tag mit der id item "Test123".


    Bei mir klappt es so wie es doprt ist ;D


    Hoffe du bemühst dich zu verstehen was dort steht und nimmst nicht nur den fertigen Code, das ist übrigens auch der Grund warum wir uns normalerweise bemühen nur anregungen zu geben... ;)



    MFG Kanu


    EDIT: Bei meinem Projekt handelt es sich um eine Bilderseite und mithilfe dieses Scriptes lade ich Bild nach um sie nicht alle beim Seitenaufruf zu laden. ;D

  • Daaaaaaaaaaanke... Jetzt habe ich bemerkt, dass Ajax ja garnicht so schwierig ist ;)


    Doch eine Frage habe ich noch: Wenn ich in der PHP-Datei jetzt PHP-Code ausführen möchte, wie zum Beispiel


    Code
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br />  header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Location: index.php"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">?><br /></span></span>


    Wie kann ich das umsetzen? Der Code steht ja in der PHP-Datei, kann also nicht direkt ausgeführt werden...


    Oder muss ich das dann mit Javascript machen, weil die Seite ja kein neues PHP empfangen und ausführen kann? O.o

  • @Basiii: Okay, dann muss ich das wohl so machen :(


    kanufrosch: Nochmal danke :* :)


    EDIT - 28.01.2012 - 18:03 Uhr
    Wie euch bestimmt allen bekannt ist, muss man für einen Dateiupload den Array $FILES benutzen. Nun fand ich es schwierig einen Dateiupload mit Ajax zu realisieren. Geht das überhaupt? Ich meine, ich kann ja keinen Array in den Request packen, weil der Array mit PHP gemacht wird. Hat da jemand eine Idee?


    Ich glaube, ich mache dafür mal einen neuen Thread :) (siehe JS-Forum)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!