You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2015-10-04 14:44:14

reneman
Member
From: Mainz
Registered: 2012-10-13
Posts: 1,106
Website

[Erledigt] OpenLayers.Request Rücklauf zuordnen

Hallo, ich habe da mal eine Frage zu Openlayers.

if (thumbURL) {

				result.push (' <a target="_blank" href="' + this.html(imageSourceURL) + '"><img src="' +
					this.html(thumbURL) + '" onload="' + imgOnload + '" alt="loading..."></a> <div id="attribution">&nbsp;</div>');

				// '../c/attribution.php?image=' abrufen			
				OpenLayers.Request.GET({
					url: this.html(attribURL),
					success: function(request) {
						document.getElementById('attribution').innerHTML = request.responseText;
						document.getElementById('attribution').id = 'attrib';
					}
				});

			}

Beim Aufbau des Popup wird das orbrige Schnipsel für jedes Objekt, dass im Popup gezeigt werden soll ausgeführt.
Da die Antwort aus der attribution.php nicht zwangsläufig in der Reihenfolge zurück kommt, wie die Anfrage aufgerufen wird, habe ich gelegentlich ein wildes durcheinander...

Ich generiere für jedes Bild ein div mit id="attribution" und die eingehenden Antworten werden naturgemäß von oben nach unten zugeordnet.
Nun kann ich jedem div eine igene ID geben und diese ID als Parameter mit an die php-Datei übergeben, diese gibt zusätzlich zum gewünschten Inhalt auch diese ID zurück, über die ich die Antwort eindeutig zuordnen könnte, aber irgendwie erscheint mir das zu umständlich... Wie kann ich einfach den Aufruf der php-Datei umsetzen und die Antwort dem richtigen Bild zuordnen? Ideen?

Last edited by reneman (2015-10-05 19:45:10)


» Check the Monuments! «
Viele der als historic=monument erfassten Objekte sind in Wirklichkeit kein Monument. Sie wurden mangels passender Tags oder aus Unkenntnis als Monument erfaßt. Diese Karte CheckTheMonuments will bei der Korrektur unterstützen.

Offline

#2 2015-10-05 19:43:36

reneman
Member
From: Mainz
Registered: 2012-10-13
Posts: 1,106
Website

Re: [Erledigt] OpenLayers.Request Rücklauf zuordnen

Habe die Lösung selber gefunden smile

Aus dem Code oben wird einfach nur:

			if (thumbURL) {

				result.push (' <a target="_blank" href="' + this.html(imageSourceURL) + '"><img src="' +
					this.html(thumbURL) + '" onload="' + imgOnload + '" alt="loading..."></a> <div id="PIC' + data.id + '">&nbsp;</div>');

				// '../c/attribution.php?image=' abrufen			
				Pic_attribution ('PIC' + data.id,attribURL);

			}

Und dafür zusätzlich am Anfang der gleichen Datei ein nettes Plätzchen für die folgende Funktion gesucht:

//------------------------------------------------------------------------------
//	Bild-Attribution nachladen
//------------------------------------------------------------------------------

function Pic_attribution (divID,attribURL) {

	function onSuccess (request) {
		document.getElementById(divID).innerHTML = request.responseText;
	}

	function onFailure (request) {
		alert ('Download Image-Attributes failed!');
	}

	OpenLayers.Request.GET({
		url: attribURL,
		success: onSuccess,
		failure: onFailure,
	});
}

Und schon ist das Durcheinander beseitigt smile
Warum sagt mir keiner, dass es so einfach ist? big_smile


» Check the Monuments! «
Viele der als historic=monument erfassten Objekte sind in Wirklichkeit kein Monument. Sie wurden mangels passender Tags oder aus Unkenntnis als Monument erfaßt. Diese Karte CheckTheMonuments will bei der Korrektur unterstützen.

Offline

Board footer

Powered by FluxBB