[TYPO] Ajax - Variable Global an PHP übermitteln und auslesen

cppnap

Lt. Junior Grade
Registriert
Nov. 2008
Beiträge
487
Guten Tag,

ich habe ein Ajax-Request geschrieben welches beim Scrollen Content nachladen soll. Im Prinzip bin ich weitestgehend schon fertig. Allerdings scheitere ich gerade daran dem Request einen Parameter mit zu übergeben der ausschlaggebend dafür ist welcher Content denn aktuell nachgeladen werden soll.

Beim 1. Request erhalte ich noch eine sinnvolle Ausgabe in Form von {"1", ""} - danach erhalte ich nur noch "[]" also Antwort.


JavaScript
Code:
jQuery(document).ready(function () {
    jQuery(window).scroll(function () {
        if (jQuery(window).scrollTop() + jQuery(window).height() == jQuery(document).height()) {
            var action = "tuer/?type=999&tx_door_door%5Baction%5D=ajax&tx_chilidoor_chilidoor%5Bcontroller%5D=Door&cHash=cbb8855cfca94ec8c6aa82867d94de5f";
            var doorcounter = jQuery("#door-counter").attr("value");
            jQuery.ajax({
                url: action,
                data: doorcounter,
                type: "get"
            }).done(function (data) {
                var i = data.length - data.indexOf("<!-- Parsetime");
                data = data.substring(0, data.length - i);
                data = jQuery.parseJSON(data);

                for (var i = 0; i < data.length; i++) {
                    jQuery('.door-container').last().after(
                        '<div class="door-container">' +
                        '   <div class="door-detail">' +
                        '       <div class="door-teaserpic">this will be an awesome picture</div>' +
                        '       <div class="wrap-price"><div class="price">' + data[i].price + '</div>' +
                        '       <div class="mwst"><p>incl. 20% Mwst</p></div></div>' +
                        '       <div class="description">' +
                        '           <div class="name">' + data[i].name + '</div>' +
                        '           <div class="shortteaser">' + data[i].shortteaser + '</div>' +
                        '       </div>' +
                        '   </div>' +
                        '</div>'
                    );
                }
                doorcounter++;
                console.log(doorcounter);
                jQuery('#door-counter').attr('value', doorcounter);
            });
        }
    });
});

PHP-Code
PHP:
    public function ajaxAction() {

        return json_encode(\TYPO3\CMS\Core\Utility\GeneralUtility::_GET());
}

Ich verstehe den Grund nicht, wieso der doorcounter nicht mehr mit GET() ausgegeben wird, sobald er auf 2 angestiegen ist.
Wo ist denn hier der Fehler?


P.S: Bevor jemand fragt, was ich in Zeile 11-12 mache. Typo3 ist wohl der Meinung mir die Parsing-Time als String hinten an mein JSON-String anzutackern. Ich hab keine Ahnung wieso aber ich schneid es einfach wieder ab :D
 
Servus,

kannst du mal erläutern was du da machst? :D
Wo ist den der zu nachladende Content? Auf der selben Seite? als Typo page.type clone?
Wenn du immer das nächste Content-Element nachladen willst, würd mir jetzt einfach spontan einfallen:
objekt-array mit den IDs der Content-Elemente, an die Seite ausliefern. Als Json oder in nem "template"-Tag.
und im Ajax, dann halt ne schleife die guckt welche id noch nicht geladen wurde

Verstehst du was ich mein? :)
Wenn für den Content ne eigene Seite existiert wäre es auch Barrierefrei(er)...


oder so:
http://www.wellnr.de/de/news1/typo3-und-ajax-mit-jquery/
 
Hey, danke für deine Antwort :-)

Der nachzuladende Content wird bei der ajaxAction im Anschluss aus der DB geladen und als JSON wieder zurück gegeben.
Das funktioniert auch bereits, nur läd er der GANZEN Content aus der DB nach, ich möchte aber natürlich immer nur stückweise nachladen lassen.

Mir ist jetzt eben nicht klar, WIE ich eine Variable über Ajax mitgebe und dann im Backend auslese :(
 
Zurück
Oben