ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
776
776
EMPFEHLEN
-
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
Ich habe bis eben gedacht, dass ich per return oder echo das ausgeben muss, was ich in meinem response-text erhalten möchte ...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.');
}
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
-
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?
-
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.
-
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.
-
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
-
JQuery und Ajax (JSON Response)
Von messmar im Forum Javascript & AjaxAntworten: 14Letzter Beitrag: 19.08.10, 23:04 -
Ajax Response und Zugriff auf einige Elemente
Von messmar im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 14.12.09, 16:35 -
Variable an Funktion übergeben, welche AJAX response bearbeitet
Von Kai-Behncke im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 18.02.09, 20:24 -
response Text direkt ausgeben (in Anlehnung an das AJAX-Tutorial von Sven Mintel)
Von karldetlef im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 06.01.09, 09:06 -
Ajax-Response wird nur in Opera übergeben
Von heinzi99 im Forum Javascript & AjaxAntworten: 5Letzter Beitrag: 02.07.08, 15:35





Zitieren

Login





