Ergebnis 1 bis 10 von 23

Thema: Content via AJAX aufrufen?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Avatar von SebbyPHM
    Registriert seit
    17.07.2006
    Beiträge
    844
    Umlaute müssen in Unicode geschrieben werden, da Ajax i.d.R. nur für UTF8 gedacht ist.

    Als kleinen jQuery-Denkansatz:

    Code:
    // Formulare innerhalb vom DIV-Container
    // mit der ID "content" auf jQuery umleiten
    
    $("#content form").submit(function(){
        var url = "ajax.php?"+$(this).attr("action");
        var method = $(this).attr("method");
        var method = method.toLowerCase();
        var showPage = function (data) {
            $('#content').html(data);
            $('#content').fadeIn('normal');
        }
        var params = {};
        for(var i=0; i<this.elements.length; i++) {
            e = this.elements[i];
            params[e.name]=e.value;
        }
        if (methos == "post") { $.post(url, params, showPage); }
        else { $.get(url, params, showPage); }
        return false;
    });
    
    // Alle Links innerhalb von dem DIV-Container umleiten
    
    $(document).ready(function() {
    	$("#content").click(functions(){
    		$("a").each(function () {
    			$.get("ajax.php?"+$(this).attr(href), "", function(data){
            			$('#content').html(data);
            			$('#content').fadeIn('normal');
    			});
    		});
    	});
    });
    Mit freundlichem Gruß
    SebbyPHM




  2. #2
    Erfahrener Benutzer Avatar von Hardy
    Registriert seit
    24.01.2007
    Beiträge
    2.235
    Zitat Zitat von SebbyPHM Beitrag anzeigen
    Als kleinen jQuery-Denkansatz:
    erinnert mich an chinesisch

    Naja PHP war ja anfang auch chinesisch für mich...mitlerweile geht es eigentlich schon ganz gut...aber das wird schon einfach mal nen schönes Buch über AJAX kaufen

  3. #3
    Erfahrener Benutzer Avatar von WaechterMedia
    Registriert seit
    02.10.2008
    Beiträge
    172
    Zitat Zitat von SebbyPHM Beitrag anzeigen
    Umlaute müssen in Unicode geschrieben werden, da Ajax i.d.R. nur für UTF8 gedacht ist.

    Als kleinen jQuery-Denkansatz:
    Wenn ich das richtig verstehe ist das ein ansatz um die formulare umzuleiten? oder sehe ich das falsch?

  4. #4
    Erfahrener Benutzer Avatar von SebbyPHM
    Registriert seit
    17.07.2006
    Beiträge
    844
    @WaechterMedia: Siehst du richtig.

    @Hardy: jQuery wird aber anders geschrieben als beispielsweise Mootools oder sriptalacous oder wie das geschrieben wird. Es gibt genügend Tutorials und Manuals.
    Mit freundlichem Gruß
    SebbyPHM




  5. #5
    Erfahrener Benutzer Avatar von Hardy
    Registriert seit
    24.01.2007
    Beiträge
    2.235
    Hi jpwfour
    ich mal wieder, ist es auch möglich den slideup,slidedown effekt mit solch ein loader zu ersetzten?
    http://www.speldhurstcc.org.uk/images/ajax-loader.gif

    Vermutlich ja aber ich bin noch auf keine lösung gekommen, ein denkansatz wäre schön.

    Noch ein Problem, links innerhalb des Content gehen leider nicht so, auch nicht wenn ich class="noaj" verwende. Geht doch wenn man <div class="ajaxm"> auch in head(),foot() einbaut aberleider nicht innerhalb von tabellen wie es aussieht.

    Achso eine lösung wäre noch gut das die form tags innerhalb einer tabelle auch funktionieren.,die gehen nämlich bei mir auch nicht

    edit: der "Bedanken" Button fehlt hier ?!

  6. #6
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Macht Sinn, "wenn's mal wieder länger dauert"

    Hab das mal nachgerüstet bei der Demo:
    http://jpwfour.kilu.de/index.php?ajax=1
    Vorallem auf der Refrallye (link links unten) sieht mans, die dauert lang (5 Sekunden )

    Sieht jetzt nicht sonderlich toll aus, aber sowas kann ich halt auch nicht

    Im Prinzip hab ich nur in der footer.php den Loader reingesetzt unter den Inhalt:
    HTML-Code:
    </div> <!-- #ajaxc, header.php -->
    
    <div id="ajwait" style="display:none;background-image:url(http://www.speldhurstcc.org.uk/images/ajax-loader.gif); height:175px;width:200px;">
    </div>
    Un dann im Skript dafür gesorgt, dass dieses DIV eingeblendet wird, sobald das anderen "hochgeslidet" ist, und wieder ausgeblendet, sobald der neue Inhalt da ist:

    Code:
    $(".ajaxm a[class!=noaj]").css("border", "2px dotted blue");
    $(".ajaxm a[class!=noaj]").click(function (event) { 
        turl = $(this).attr("href");
        treffer = turl.match(/content=[\/a-z0-9]+/i);
        $("#ajaxc").slideUp('fast', function() {
            $("#ajwait").show(); // neu
            $('#ajaxc').load('ajax.php',""+treffer, function() {
                $("#ajwait").hide(); // neu
                $("#ajaxc").slideDown();
                $("#ajaxc form").each( function(index, elem) {
                    if($(elem).attr("action") == ""){
                        $(elem).attr("action", "index.php?"+treffer);
                    }
                });
            });        
        });
        event.preventDefault();
    });
    Das Sliden wär evtl auch schöner, mit ein/ausblenden, da gibts ja in jQuery viele Möglichkeiten:
    http://api.jquery.com/category/effects/

    EDIT: evtl gehen die bedanken buttons nicht, da die beiträge vor dem einbau der bedanken funktion erstellt wurden, k.a.
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  7. #7
    Erfahrener Benutzer Avatar von SebbyPHM
    Registriert seit
    17.07.2006
    Beiträge
    844
    Jetzt noch die Browser-Navigation gangbar machen und es ist top .
    Mit freundlichem Gruß
    SebbyPHM




  8. #8
    Benutzer Avatar von Pandareneule
    Registriert seit
    08.03.2008
    Beiträge
    30
    Hallo Leute!
    Habe das ganze bei mir auch eingebaut und klappt wunderbar
    Jetzt habe ich mich daran gemacht einen Workaround für die Formulare zu basteln. Dabei habe ich mir das ganze so vorgestellt:
    Ein AJAX Formular, das ein PHP Script lädt, dieses führt die Datenbankabfrage durch.
    Das ganze funktioniert auch schon, aber nun möchte ich noch das der Content nochmal refresht wird. Überlegt habe ich mir folgendes:
    Ich lasse ganz einfach per AJAX den Content wieder neuladen mit diesem Befehl:
    Code:
    <script>
    $('#ajaxc').load('ajax.php?content=/game/train');        
    </script>
    Das ganze Funktioniert auch. Aber nur solange ich nicht meine Datenbankabfrage vorher reinschalte. Dann macht er die Datenbankabfrage, aber lädt den Content nicht neu, sondern zeigt ein weißes Bild an.

    Hier nochmal der Ausschnitt mit der Abfrage:
    Code:
        db_query("INSERT INTO game_training_prog (uid,id,start,bis) VALUES (".$_SESSION['uid'].",".$tr['id'].",".time().",".(time()+$tr['dauer']).")");
     ?>
    <script>
    $('#ajaxc').load('ajax.php?content=/game/train');        
    </script>

Ähnliche Themen

  1. Simpler Ajax-Content bringt mich um den Verstand...
    Von tweetymr im Forum [HD] Programmieren
    Antworten: 3
    Letzter Beitrag: 19.09.2011, 15:42
  2. Content via AJAX aufrufen?
    Von Hardy im Forum [HD] Programmieren
    Antworten: 6
    Letzter Beitrag: 30.05.2010, 17:45
  3. Seite aufrufen
    Von ruddi1 im Forum Support zum VMSone
    Antworten: 14
    Letzter Beitrag: 19.06.2008, 16:14
  4. Fehler beim Aufrufen einiger Seiten!
    Von dwarfpitcher im Forum Support zum VMSone
    Antworten: 2
    Letzter Beitrag: 16.01.2008, 00:00
  5. Seite lässt sich nicht aufrufen
    Von dragon11 im Forum Support zum VMSone
    Antworten: 9
    Letzter Beitrag: 30.12.2006, 04:21

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •