zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Ajax Request Handler

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 14.08.2006, 09:02
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 03.11.2005
Beiträge: 175
insanic! befindet sich auf einem aufstrebenden Ast
Standard Ajax Request Handler

Hi,

ich setzte folgende 2 Funktionen zum AUfbau einer Verbindung bzw zum Senden von Daten ein:

Code:
function getXMLRequester( )
{
	var xmlHttp = false;
		   
	// try to create a new instance of the xmlhttprequest object       
	try
	{
		// Internet Explorer
		if( window.ActiveXObject )
		{
			for( var i = 5; i; i-- )
			{
				try
				{
					// loading of a newer version of msxml dll (msxml3 - msxml5) failed
					// use fallback solution
					// old style msxml version independent, deprecated
					if( i == 2 )
					{
						xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );   
					}
					// try to use the latest msxml dll
					else
					{
					   
						xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
					}
					break;
				}
				catch( excNotLoadable )
				{                       
					xmlHttp = false;
				}
			}
		}
		// Mozilla, Opera und Safari
		else if( window.XMLHttpRequest )
		{
			xmlHttp = new XMLHttpRequest();
		}
	}
	// loading of xmlhttp object failed
	catch( excNotLoadable )
	{
		xmlHttp = false;
	}
	return xmlHttp ;
}

function sendData(data, file) {
	con = getXMLRequester();
    con.open('POST', file, true);
    param = document.getElementById(data).name + '=' + document.getElementById(data).value;
    con.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    con.setRequestHeader("Content-length", param.length);
	con.onreadystatechange = handleResponse;
	con.send(param); 
    return false;
}
Nun gibt es natürlich Probleme, wenn data ein Formularfeld ist, das ein Array darstellt.

Gibt es vielleicht eine Funktion sendData() (bzw kennt Ihr eine), die einfach alle Daten eines Formulars an eine Datei file über die Methode method (POST / GET) schickt?

ALso praktisch so, wie als würde man auf den Submit Button klicken!!

Danke!!
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 14.08.2006, 13:12
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.03.2004
Beiträge: 1.838
RoToRa wird schon bald berühmt werden
Standard

Äh, wenn du ein Formular verschicken willst, warum tust Du das nicht einfach, statt mit AJAX rum zu machen?

Robin
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 14.08.2006, 13:20
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 03.11.2005
Beiträge: 175
insanic! befindet sich auf einem aufstrebenden Ast
Standard

Äh, weil ich den Reqeust mittels Ajax machen will. Weil ich auch keine neue Seite dazu laden möchte etc.
Aber es ist mir einfach zu umständlich, nur einzelne Felder per Ajax an eine bestimmte Datei zu senden, deswegen wäre es schön, wenn ich einfach alle Formulardaten an die Datei schicken könnte.
Welche Daten diese Datei dann braucht, is ja sh!t egal, aber hauptsache ich muss mich nicht mehr darum kümmern, dass ich alle von der requesteten Datei gebrauchten Formulardaten auch wirklich an diese verschicke!!
Mit Zitat antworten
  #4 (permalink)  
Alt 14.08.2006, 17:27
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.03.2004
Beiträge: 1.838
RoToRa wird schon bald berühmt werden
Standard

Zitat:
Zitat von insanic!
Äh, weil ich den Reqeust mittels Ajax machen will.
Das ist natürlich ein überzeugender Grund...

Zitat:
Weil ich auch keine neue Seite dazu laden möchte etc.
Brauchst du auch nicht. Und dafür ist auch kein AJAX nötig. Informiere Dch mal über den HTTP-Status-Code 204 (http://tools.ietf.org/html/rfc2616#page-60). Oder benutze die billige Methode: Poste in ein verstecktes IFrame.

Zitat:
Aber es ist mir einfach zu umständlich, nur einzelne Felder per Ajax an eine bestimmte Datei zu senden, deswegen wäre es schön, wenn ich einfach alle Formulardaten an die Datei schicken könnte.
Ebend. Dafür gibt es Formulare, also benutze sie auch.

Robin
Mit Zitat antworten
  #5 (permalink)  
Alt 14.08.2006, 18:46
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 03.11.2005
Beiträge: 175
insanic! befindet sich auf einem aufstrebenden Ast
Standard

Wenn ich das ganze aber über Ajax machen möchte? Angenommen ich schreibe ein GB auf Ajax basis, dann muss doch eh der Name, die Homepage, die Mail adresse und die Nachricht gesendet werden. Wie mache ich das nun? Es kann nicht sein, dass ich 5 mal sendData() aufrufen muss. Eigentlich sollten dazu alle Formulardaten an ein Script geschickt werden. Also ...
Mit Zitat antworten
  #6 (permalink)  
Alt 16.08.2006, 11:40
Benutzerbild von nick
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 01.08.2006
Ort: Rheinland-Pfalz
Beiträge: 386
nick befindet sich auf einem aufstrebenden Ast
Standard

...hab mich geirrt...

Geändert von nick (16.08.2006 um 11:43 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 17.08.2006, 10:02
Benutzerbild von nick
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 01.08.2006
Ort: Rheinland-Pfalz
Beiträge: 386
nick befindet sich auf einem aufstrebenden Ast
Standard

Verdammt, kann ihm nicht irgendjemand sagen wie es geht
anstatt ihm einzureden, dass er es nicht braucht?
Mich würde es nämlich auch dringend interessieren, bitte!
Mit Zitat antworten
  #8 (permalink)  
Alt 17.08.2006, 10:04
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 03.11.2005
Beiträge: 175
insanic! befindet sich auf einem aufstrebenden Ast
Standard

Jo, dieses Einreden "du brauchst das nicht", oder "das macht _MAN_ nicht" hass ich auch^^
edit: ...denn würd ichs net brauchen, würde ich net fragen

Geändert von insanic! (17.08.2006 um 13:47 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 17.08.2006, 16:11
Benutzerbild von duessu
{blubb /}
XHTMLforum-Mitglied
 
Registriert seit: 05.09.2005
Beiträge: 371
duessu befindet sich auf einem aufstrebenden Ast
Standard

Wenn du ein PHP skript hast, welches dein formular abfängt kannst du ja einen ganz "normalen" AJAX Request machen mit den Werten in der URL:

senden.php?name=blubber&email=test@test.de

Das PHP bekommt seinen aufruf und du hast die Daten in der DB (oder sonst irgendwo)

Nebenbei, Aus eigenen Tests geht das AJAX-Post zeugs nur eingeschränkt. Jedenfalls habe ich es bei 2 Hoster versucht, bei welchen es nicht geklappt hat.

Aber die Frage wegen dem Warum du das so machst ist immer noch auf dem Tisch. Denn wenn du schon AJAX nutzt kannst du ja gleich bei jedem Feld ein "sendData" machen und Schritt für Schritt das Zeug in die DB schreiben oder eine Meldung ausgeben ob der Wert valid ist.
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 18.08.2006, 10:42
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 03.11.2005
Beiträge: 175
insanic! befindet sich auf einem aufstrebenden Ast
Standard

Aber wenn ich ne Datei so aufrufe mit Get Parametern, wie du es beschrieben hast, dann kann diese Datei keine Sachen an mein aktuelles Script zurückgeben ...
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Viele Ajax request - async:false - mit timeout realisieren It Format Javascript & Ajax 5 12.06.2013 14:56
Variable an nächstes Request weitergeben MitjaStachowiak Serveradministration und serverseitige Scripte 12 16.03.2012 12:41
Ajax Request erst nach 500ms Pause bei Eingabe OscarWilde1024 Javascript & Ajax 1 10.02.2012 09:07
ConfirmBox mit Ajax Benutzername Javascript & Ajax 0 05.08.2010 13:16
Buchrezension: AJAX - Frische Ansätze für das Webdesign Flocke Ressourcen 2 01.11.2005 22:08


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:41 Uhr.