prototype ajax

versuch13

Erfahrenes Mitglied
Lösung weiter unten..



Ich bin gerade dabei etwas mit dem prototype framework zu arbeiten. Ich versuche Daten an ein PHP Script zu senden welches die Daten dann in eine MySQL Tabelle schreibt, und möchte diese sofort wieder zurückholen.

Eigentlich funktioniert es auch schon so einigermaßen. Wenn ich die Datei mit der die Daten an das PHP Script gesendet werden zum ersten mal aufrufe und die Daten sende, werden sie in die Datenbank eingetragen und mir dann auch sofort angezeigt.
Wenn ich jetzt jedoch nochmals Daten senden möchte, ohne die besagte Datei welche die Daten an das PHP Script zum eintragen in die Datenbank übergibt, werden die Daten zwar eingetragen, mir aber erst beim nächsten reload angezeigt. Bedeutet, wenn ich mehrere male nacheinander den Link myAjaxRequest() auslöst betätige, werden die Daten zwar eingetragen, mir aber erst beim nächsten mal wenn ich ihn betätige angezeigt, also hängt die Anzeige immer einen Antrag hinterher. Hoffe das ist verständlich.


index.php
Code:
    myAjaxUpdater = function(element, page) {
        document.getElementById(element).innerHTML = 'Loading ...'; 
        new Ajax.Updater(element, page + '.php', {asynchronous:true});
    }    
    myAjaxRequest = function(cat, url) {
        new Ajax.Request('ajaxrequest.php?cat=' + cat + '&url=' + url);
        myAjaxUpdater('content', 'ajaxcontent');
    }

HTML:
<a href="#" onclick="myAjaxRequest('Allgemeines', 'http://www.google.de/');">senden</a>


ajaxcontent.php
PHP:
    Header("Content-type: text/html; charset=iso-8859-1"); 
    
    include "inc/config.php";

    $query =     "SELECT
                    `kategorie`,
                    `url`
                  FROM
                    `kategorien`
                  ORDER BY
                    `kategorie` DESC
                ";
                
    $result = mysql_query($query);

    while( $row = mysql_fetch_assoc($result) ) {
        echo '<h3>'.$row['kategorie'].': </h3>';
        echo $row['url'].'<br>';
    }



Also, ich gehe mal davon aus, dass es an diesem Teil hier liegen muss:

Code:
    myAjaxRequest = function(cat, url) {
        new Ajax.Request('ajaxrequest.php?cat=' + cat + '&url=' + url);
        myAjaxUpdater('content', 'ajaxcontent');
    }


Vielen Dank schon mal im vorraus.



Edit: Ok, erstmal ausschlafen hat es dann doch gebracht.


Code:
myAjaxUpdater = function(element, page, cat, url) {
		document.getElementById(element).innerHTML = 'Loading ...'; 
		new Ajax.Updater(element, page + '.php?cat=' + cat + '&url=' + url, {asynchronous:true});
	}

HTML:
<a href="#" onclick="myAjaxUpdater('content', 'ajax', 'Allgemeines', 'http://www.google.de/');">

Und in der ajax.php dann den MySQL INSERT und die Ausgabe...
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück