tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
1188
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Hi,

    ich versuche schon seit geraumer Zeit in meine Seite mit Smarty Templates Ajax einzubauen.

    Das gelingt mir aber nicht.
    Zum Beispiel habe ich dieses hier versucht:
    http://tutorialzine.com/2009/08/crea...m-with-jquery/

    Aber ich weiß nicht wie ich zum Beispiel diesen Teil:
    PHP-Code:
    // we check if everything is filled in

    if(empty($_POST['fname']) || empty($_POST['lname']) || empty($_POST['email']) || empty($_POST['pass']))
    {
        die(
    '{status:0,txt:"All the fields are required"}');
    }

    // is the sex selected?

    if(!(int)$_POST['sex-select'])
    {
        die(
    '{status:0,txt:"You have to select your sex"}');
    }

    // is the birthday selected?

    if(!(int)$_POST['day'] || !(int)$_POST['month'] || !(int)$_POST['year'])
    {
        die(
    '{status:0,txt:"You have to fill in your birthday"}');
    }

    // is the email valid?

    if(!(preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/"$_POST['email'])))
        die(
    '{status:0,txt:"You haven\'t provided a valid email"}');

    echo 
    '{status:1,txt:"registered.html"}'
    Richtig umsetze damit es im Template ausgegeben wird.
    mit echo kann dies ja wohl kaum funktionieren.


    Wäre super, wenn ihr mir Tipps geben könntet, oder mir Tutorials nennen könntet, da ich keine gefunden hab.
    Danke!
    David
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

  2. #2
    Avatar von one6666
    one6666 one6666 ist offline Mitglied Titanium
    Registriert seit
    Jan 2010
    Ort
    Nordrhein-Westfalen
    Beiträge
    175
    Blog-Einträge
    1
    Hallo,

    verstehe deinen Beitrag nicht ganz, aber kann es sein das du die Fehlermeldungen ohne neue Laden deiner Seite anzeigen möchtest ?
    Paar Infos wäre echt nicht schlecht

    Ansonsten http://openbook.galileocomputing.de/...8_ajax_001.htm
    Geändert von one6666 (13.03.10 um 10:51 Uhr) Grund: Rechtschreibung
     

  3. #3
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Genau, Meldungen anzeigen ohne Seite neu laden ist zum Beispiel eine Funktion.
    Oder Daten ändern.


    Mein Problem ist, dass ich Smarty Templates benutze.
    Und ich weiß nicht, wie ich das jetzt einbauen muss, da man im PHP Teil ja jetzt nicht einfach mehr "echo" machen kann.
    Ich muss die Nachrichten filtern und dann ins Template übergeben, aber wie?!
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

  4. #4
    DeluXe DeluXe ist offline Funkjoker
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    847
    Nun, auf jeden Fall muss man einen Rquest per JavaScript absetzen und dessen Rückgabewert verarbeiten. Das kann man auf zwei Wege.

    1. Man gibt die Antwort des Server einfach aus, da es sich um HTML handelt.
    Dafür sollte sich .load() gut eignen.

    2. Man verarbeitet die Antwort des Servers, da sie z.b. im JSON- oder XML-Format geliefert werden. (Was bei dir ja zutrifft.)
    Dafür gibt es .ajax().

    So wie dein Response derzeit aussieht, musst du die Serverantwort lediglich einer Variable zuweisen und kannst mit dieser dann wie mit einem normalen Objekt arbeiten. Z.b. in der success-Methode von .ajax().
    Schaus dir einfach mal an.

    *edit*
    Was das ganze mit Smarty zu tun hat verstehe ich nicht.
     
    mfg

    DeluXe

  5. #5
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Aah, ich habs hinbekommen...

    Habe jetzt folgendes Ajax/Javascript Script:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    
    $(document).ready(function(){
                        $('#regForm').submit(function(e) {
                            register();
                            e.preventDefault();
                        });
                    });
                    
                    function register()
                    {               
                        $.ajax({
                            type: "POST",
                            url: "register.php",
                            data: $('#regForm').serialize(),
                            dataType: "json",
                            success: function(msg) {
                                // get error-status-number
                                errorstatus =  parseInt(msg.status);
                                
                                if(errorstatus == 1) {
                                    window.location=msg.txt;
                                } else if(errorstatus == 0) {
                                    error(1,msg.txt);
                                } 
                            }
                        });
                    }
     
     
                    function hideshow(el,act)
                    {
                        if(act) 
                            $('.'+el).animate({ height: 'show', opacity: 'show' }, 'fast');
                        else 
                            $('.'+el).animate({ height: 'hide', opacity: 'hide' }, 'fast');
                    }
                    
                    function error(act,txt)
                    {
                        hideshow('error',act);
                        
                        if(txt) 
                            $('.error').html(txt);
                    }

    Gibt es eine Möglichkeit, diese Funktionen möglichst so zu gestalten, dass ich sie auf (wenn möglich) allen Seiten, auf denen per Ajax etwas gesendet werden soll, verwenden kann?


    Gruß
    David
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

Ähnliche Themen

  1. Templates: Smarty?
    Von Leomuck im Forum PHP
    Antworten: 5
    Letzter Beitrag: 23.06.08, 23:10
  2. Problem mit Smarty Templates
    Von Kalma im Forum PHP
    Antworten: 6
    Letzter Beitrag: 18.11.07, 15:20
  3. Templates ohne Smarty usw. programmieren
    Von adlershof im Forum PHP
    Antworten: 6
    Letzter Beitrag: 08.08.07, 08:45
  4. Probleme mit Smarty Templates
    Von Kalma im Forum PHP
    Antworten: 38
    Letzter Beitrag: 19.12.06, 16:52
  5. Smarty Templates auf der Datenbank
    Von Badgott im Forum PHP
    Antworten: 0
    Letzter Beitrag: 11.04.05, 18:42