Caricamento immagini CONDIZIONALE

  • Creatore Discussione Creatore Discussione lyllo
  • Data di inizio Data di inizio

lyllo

Nuovo Utente
14 Set 2008
8
0
0
ciao a tutti.
vorrei creare un caricamento condizionale di una mappa di navigazione.
al click su una mappa, dovrebbe apparirne un'altra con relativa mappa all'interno di un DIV sovrapposto a quella iniziale, senza cancellarla.

viaggia.php
HTML:
<script type="text/javascript" src="script/ajax.js"></script>
...
<div id='contenitore_continente'></div>
<div align="center" style="border: 1px solid black; width: 50%; margin-left: 20%">
<img src="immagini/mondo.jpg" width="800" height="300" border="0" usemap="#Planisfero">
<map name="Planisfero">
...
<area shape="rect" coords="4,194,136,296" href="java-script:carica_mappa('continente','A')">
...


ajax.js:

HTML:
...
function carica_mappa(tipo, localita){
	var xmlHttp = getNewHTTPObject();
    var url = "viaggia.php";

    xmlHttp.open('POST', url, true);   
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttp.onreadystatechange = function img(localita){
			if (xmlHttp.readyState != 4){
		    	return;
	    		}
			var img = new Image(300, 300); 
			img.src = "immagini/continente"+localita+".jpg";			
			contenitore_continente.appendChild(img);
			contenitore_continente.innerHtml = mappa_immagine; //non so dove crearla
		} 
    	var risorse = escape(tipo)+"="+escape(localita);
   	xmlHttp.send(risorse);
}

solo che
1) non mi carica la variabile localita e qundi mi carica male l'immagine
2) non ho idea di dove scrivere la mappa immagne, per inserirla nel div giusto.


grazie
 
Nella funzione Javascript prova a mettere un alert cosi:

alert(localita)

Stampa qualcosa nell'alert?

si avevo gia provato ieri stampa una cosa tipo Object Window se tengo le funzioni separate.
se innesto la funzione onreadystatechange = function img(){...}
ottengo una cosa simile ma leggermente diversa (ora nn lo ricordo), ma il fatto è che non è giusto.
avevo messo l'alert a img.src ed invece di caricare la cosa giusta, caricava una stringa tutta incasinata con simboli strani (tipo Object%5Window%5_etc)
 
Prova a passare i dati in get ed accoda le variabili in querystring alla variabile url.

Fammi sapere...

la prova potrò farla domani :(

intanto mi chiedevo come potessi gestire la faccenda della mappa.
visto che le mappe sono grandicelle, come posso fare per caricare immagine e mappa associata, nel relativo contenitore_mappa ?
 
Prima di pensare alla questione estetica penserei a quella funzionale.

A domani!

estetica!?!?!?!!?
una mappa immagine da quando è "estetica"?????? :eek:

forse non ci siamo capiti:
con quell'ajax io devo fare DUE cose:
1) caricare un'immagine in un div, a seconda di certi parametri
2) a quella immagine dev'essere associata una mappa per poter essere clickabile.
con mappa immagine in html si intende una cosa sola: http://grafica.html.it/guide/lezione/615/creare-una-mappa-immagine/, non vorrei tu abbia frainteso il concetto di mappa immagine con le immagini che devo caricare :D

ciao e grazie.
 
So cos'è una mappa d'immagine:

https://www.mrw.it/html/articoli/mappe-immagini-cliccabile-html_910.html

:)

Se dici che ti poni il problema perchè è troppo grande... allora parlo di estetica.

svelato il quid pro quo: con troppo grande intendevo dire che è una serie di informazioni molto ampia che non posso passare in querystring e mi chiedevo dunque quale fosse il modo migliore per inserirlo dentro un container che mostrasse quindi sia l'immagine condizionale che la mappa ad essa associata.
 
Intendi dire che alla pagina PHP devi passare molti dati?

Se ne fai un problema di lunghezza della querystring puoi abbreviare il nome delle variabili:

file.php?nome=Luca

file.php?n=Luca

e cosi via.

In ogni caso... sicuro sicuro sicuro che i dati devi passarli tutti?
 
Intendi dire che alla pagina PHP devi passare molti dati?

Se ne fai un problema di lunghezza della querystring puoi abbreviare il nome delle variabili:

file.php?nome=Luca

file.php?n=Luca

e cosi via.

In ogni caso... sicuro sicuro sicuro che i dati devi passarli tutti?

non è questione di dati, ma ovviamente non voglio passare un'intera imagemap via querystring!
so che con ajax si possono caricare e modificare le pagine in realtime anche includendo altre pagine ed informazioni.
visto che è poco che lavoro con ajax non riesco ancora a capire per bene la filosofia che muove il sistema.
alla fine pensavo che lo script che avevo creato, che per delle cose funzionava, avrebbe funzionato anche per tutto il resto e sarebbe stato sufficiente fare qualche piccola modifica per adattarlo di volta in volta a nuove esigenze.
ma non capisco se il responseText va usato e tenuto sempre in considerazione, se l'onreadystatechange pure o se posso evitarlo in certe situazioni.
in questo esempio specifico non vedo a cosa serva il responseText, oppure se, usando una pagina specifica in cui conservare tutte le imagemaps, il responseText potrebbe servire proprio per caricare in un div la mappa relativa all'immagine...
 
No scusa, fammi caire: vorresti (NON) passare il codice HTML che genera la mappa via querystring?

eh no, vorrei evitarlo.
sono diverse decine di caratteri, non so nemmeno se c'entrerebbero tutti nella querystring.
senza contare eventuali altri dati.
e visto che c'è ajax, speravo e pensavo vi fosse un modo diverso per includere il contenuto della pagina che contiene la mappa nel div della pagina viaggia.php
 
E ci credo che vuoi evitarlo :)

Mi sembra una scelta non molto saggia infatti e non capisco perchè ti è passato per la mente: la mappa la tieni scritta nel codice PHP e la visualizzi, con i parametri associati, a seconda dei dati che passi in GET via AJAX.
 
E ci credo che vuoi evitarlo :)

Mi sembra una scelta non molto saggia infatti e non capisco perchè ti è passato per la mente: la mappa la tieni scritta nel codice PHP e la visualizzi, con i parametri associati, a seconda dei dati che passi in GET via AJAX.

1) guarda che NON era venuto in mente a me, ma io la stavo criticando proprio perchè non la condividevo come idea.
2) il motivo per cui ho postato sul forum era per chiedere un aiuto pratico di COME scrivere le info e modificare gli script per realizzare questa cosa, non per avere un'idea teorica, perchè quella già l'avevo chiara in mente :)
la mia difficoltà sta nel capire dove/come chiamare la pagina php o html che sia, con l'image map, quale deve essere il codice per realizzarlo.
come mai la mia funzione non funziona...
ecco il punto.
spero di essermi spiegato un pò meglio.

grazie
 

Discussioni simili