tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
776
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DiDiJo DiDiJo ist offline Mitglied Brokat
    Registriert seit
    Sep 2008
    Beiträge
    285
    Hi Leute,

    ich habe ein Problem mit meinem neuen AJAX Formular.

    Und zwar möchte ich PER JS / Ajax ein Formular abschicken und entweder Fehler ausgeben, wenn nicht alle nötigen Daten eingegeben wurden, oder eine Erfolgsmeldung ausgeben.

    Hier mal der grobe Aufbau:
    HTML-Code:
    <form name="kformular" id="kformular" method="post" onsubmit="return checkForm(this);">
    [...]
    </form>
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    
    function checkForm(f){
        var name;
        var error = 0;      
        var auswahl = 0;
        var error_text = '';
     
        error_content = document.getElementById('error_content');   
        $('#error_box').css('display','none');
     
            [Eingabeprüfung]
     
        if (error > 0) {                
            alertBasicErrorMessage(error_text)
            return false;
            }
        else {
            submitAjaxForm(f);
            return false;
        }
    }
     
     
    function submitAjaxForm(f) {
      form_id = f.id;  
      data_vars = $('#'+form_id).serialize();
      var response = ''  
      //Icon während des Requests zentrieren und einblenden
      centerElement('ajax_loader');
      $('#ajax_loader').show();
      
      //Request abschicken
      response = $.ajax({
        //Ort des Skriptes in dem die per GET übertragenen Daten verarbeitet werden sollen
        url: "http://w00d47e1.dd21020.kasserver.com/modules/ajax.submitForms.php",
        //Angabe der GET Methode, auch POST wäre möglich. Allerdings nur sinnvoll
        //bei größeren Datenmengen
        type: "GET",
        
        //async: false,
        
        //Daten die gesendet werden sollen          
        data: data_vars,        
        //bei Antwort des Requests (Response)
        success: function (text) {              
        //wenn saveData.php true bzw. den Status 1 zurückliefert    
            f.reset();                  
        }
                
      });
      $('#ajax_loader').hide(); 
     
     //alert(String(response));


    Hier mal ein Auszug aus der ajax.submitForm.php
    PHP-Code:
    if ($_REQUEST['form_type'] == 'immo_direkt') {

                    
    $MAIL->send_mail($mailName$mailAbsender$mailSubject$message$mailEmpf'');

    return 
    addslashes('Vielen Dank für Ihre Objektanfrage. Wir werden uns schnellstmöglicht bei Ihnen melden.');


    Ich habe bis eben gedacht, dass ich per return oder echo das ausgeben muss, was ich in meinem response-text erhalten möchte ...

    Also ich möchte in 'success: function (text) ' (text) meine Ausgabe aus der PHP Datei erhalten, damit ich nach dem Abschicken des Formulars eine individuelle Erfolgsmeldung ausgeben kann. Aber wie gesagt ... bei mir bleibt der Response Text konsequent leer ... Kann mir jemand von euch sagen, was ich falsch mache ?

    P.S. Die Ajax Anfrage funktioniert übrigens wunderbar ... mein PHP Code wird erfolgreich abgeschickt.

    mfg DiDi
     

  2. #2
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    1.Liegen PHP und JavaScript auf dem gleichen Host?
    2.Wenn du die URL ohne JavaScript von Hand aufrufst, bekommst du dann die erwartete Ausgabe?
     

  3. #3
    DiDiJo DiDiJo ist offline Mitglied Brokat
    Registriert seit
    Sep 2008
    Beiträge
    285
    1. Die beiden dateien liegen auf dem selben server. Allerdings zeigt die domain über die ich arbeite auf folgendes verzeichnis:

    /homepages/kunden/[kdnr_nr]/

    hier liegen 4 Dateien: index.php, search.php, details.php ... die alle die config.php (mit basis_variablen) includieren.

    Diese Dateien includieren dann alle die dateien aus dem entsprechenden template:
    /templates/layout_xyz/
    hier gibt es dann wieder die index.php, search.php und details.php die dann die richtige seite dastellen. So ist gewährleistet, dass mehrere User das geliche oder ein anders Layout erhalten.

    diese ajax.submitform.php liegt aber auf:
    /modules/ajax.submitform.php

    Kann es wegen der Ordnerstruktur zu Fehlern kommen (Sicherheitsbeschränkungen von JS)

    2. Wenn ich die PHP Datei ganz normal über den browser aufrufe erhalte ich meine ausgabe. Das komplette PHP Skript wird ja auch ausgeführt und ich erhalte die MAil aus meinem Kontaktformular ... bloß die Ausgabe erhalte ich nicht zurück wenn ich das ganze per AJAX versuche.
     

  4. #4
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Falls du Firefox benutzt, installiere sofort das Plugin HttpFox (https://addons.mozilla.org/en-US/firefox/addon/6647/). Wenn man auf der Suche nach Fehlern ist, genau wie du es jetzt bist, ist das Gold wert. Du siehst ob der Request an kommt, was geschickt wird und ob er auch wieder zurück kommt und was bei dir alles ankommt.
    Der "Net"-Tab von Firebug ist da auch recht hilfreich, aber um HttpFox komme ich nicht mehr herum.
     

  5. #5
    DiDiJo DiDiJo ist offline Mitglied Brokat
    Registriert seit
    Sep 2008
    Beiträge
    285
    das plugin ist ja super ... habe damit den fehler finden können: 'BAD_DOM_URL' ... ich hatte die ajax.php Datei falsch angebunden ... jetzt passt es
     

Ähnliche Themen

  1. JQuery und Ajax (JSON Response)
    Von messmar im Forum Javascript & Ajax
    Antworten: 14
    Letzter Beitrag: 19.08.10, 23:04
  2. Ajax Response und Zugriff auf einige Elemente
    Von messmar im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 14.12.09, 16:35
  3. Variable an Funktion übergeben, welche AJAX response bearbeitet
    Von Kai-Behncke im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 18.02.09, 20:24
  4. Antworten: 4
    Letzter Beitrag: 06.01.09, 09:06
  5. Ajax-Response wird nur in Opera übergeben
    Von heinzi99 im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 02.07.08, 15:35