• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datenübergabe bei jQuery

Status
Für weitere Antworten geschlossen.

Lok33

Neues Mitglied
Hi@All,

ich habe folgendes Problem:

Ich schreibe derzeit eine Applikation bei welcher ich eine Karte im Huntergrund ( OSM mit OpenLayers ) über Ajax neu laden möchte.

Ich habe also diese karte im Hintergrund und sie wird beim aufruf der Seite zunächst auf bestimmte Koordinaten zentriert. Nun gibt es ein Formular, in welches man eine Adresse eingeben kann ( Strasse, Hausnummer, Zipcode, Ort, Land ). Diese Daten sollen nun übergeben an ein php script übergeben werden, welches die übergebenen Daten an OSM schickt und das kartenmaterial von der neuen Adresse zurückbekommt. Der ganze Spass soll dann in dasselbe div reingeladen werden wie die Karte zuvor.

Ich habe jetzt zunächst Probleme, die ajax-Request in Gänze zu verstehen. Weiterhin weiss ich nicht, wie ich die Daten übergeben kann
icon_sad.gif


also es sieht zunächst aus wie folgt:

function updateMap()
{

if(document.getElementById('Ort').Ortswahl[0].checked){

$.ajax({
type: "POST",
url: "changemap.php",
cache: false,
data: datastring,
success: function(msg){
$('#Dienste').html(msg);
}
error: alert("
icon_sad.gif
");
});

Ich habe folgende Dinge zur Definition des "datastring" probiert:

1. string
datastring = $('#Street').name+ "=" + $('#Street').value + ";" + $('#Number').name + "=" + $('#Number').value +";" $('#Zipdoce').name +"="+$('#Zipcode').value+";" $('#City').name +"="+$('#City').value+";" $('#Country').name +"="+$('#Country').value;

2. "assoziatives" array
var datastring = new Array();

datastring[0] = new Object();
datastring[0]["Street"] = document.getElementById('Street').value;
datastring[0]["Number"] = document.getElementById('Number').value;
datastring[0]["Zipcode"] = document.getElementById('Zipcode').value;
Adresse[0]["City"] = document.getElementById('City').value;
datastring[0]["Country"] = document.getElementById('Country').value;

3. normales array
datastring = new Array(document.getElementById('Street').value, document.getElementById('Number').value,document.g etElementById('Zipcode').value,document.getElement ById('City').value,document.getElementById('Countr y').value );

4. quasi als JSON(?)
datastring = { Street : $('#Street').value, Number : $('#Number').value, Zipdoce : $('#Zipcode').value, City : $('#City').value, Country : $('#Country').value }

//DIESER TEIL HAT SICH SOEBEN ERLEDIGT!

Wie ich bereits erwähnte, bin ich auch nicht in der Lage, die Anfrage zu 100% nachzuvollziehen, vielleicht könnte man mir auch hier kurz etwas erläutern. (das ist absolutes neuland für mich, wie js und auch der spass drumrum)
Soweit ich diese Request verstanden habe, wird zunächst .ajax aufgerufen um eine ajax-request zu starten. Dann folgen quasi "Übergabeparameter", also zunächst die Übergabemehtode( GET oder POST), dann das Script, an welches die Daten geschickt werden sollen ( bei mir also die changemap.php ), cache (obs gecached werden soll im browser oder nicht), so und nun, wenn die anfrage funcktioniert hat ( success ) wird "function(msg)" ausgeführt... ich habe das ein bisschen zusammenkopiert muss ich gestehen, ob meiner Unwissenheit auf dem Gebiet
icon_sad.gif
. "msg" scheint meine Rückgabe zu sein, die ich dann im letzten befehl "$.('#basicMap').html(msg)" scheinbar wieder in das div reinschmeisse, welches mit "('#div') gewählt wird. Das ist, was ich in etwa so nachvollziehen konnte, womöglich sind da auch Fehler dabei, ich habe versucht, mich über die jQuery Dokumentation etwas schlauer zu machen, aber naja, ich bin gescheitert
icon_sad.gif
... Kann man mir das "function(msg)" vllt etwas genauer erklären, was da genau passiert o.ä.? Wenn ich jetzt hier irgendwas Dummes frage, wos tausend Verweise und Tutorials gibt, bitte einfach darauf hinweisen, ich hab schon viel gegoogelt und war wie erwähnt nicht sehr erfolgreich
icon_sad.gif
....





Naja, also zur expliziten Frage:
Ich möchte die Daten des Formulars gerne in einem assoziativen array übergeben, damit das php skript hinerher alles einfach auslesen kann. Da es sowas nicht in JS gibt, habe ich mal gegoogelt und bin auf diesen Spass mit dem Object gestoßen, der so ein assoziatives array (siehe "2.") grösstenteils vortäuschen soll scheinbar... ich habe mir das auchmal mit alert ausgeben lassen, es kommt einfach "[object Object]" zurück. Weiterhin habe ichs auch Naja, wenn das so nicht geht, auch nich schlimm. Wie man an auskommentierten Stellen sieht, habe ich auch schon andere übergabeparameter versucht und bin auch hier gescheitert. Mache ich irgendwas von vornherein falsch? Kann mir jemand einen Denkanstoss bezüglich dessen geben?

Vielen Dank schoneinmal im Voraus

Lok33
 
Zuletzt bearbeitet:
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben