Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

trasmissione dati

21 views
Skip to first unread message

Enrico Maria Chellini

unread,
Apr 28, 2018, 5:02:23 AM4/28/18
to
non mi funziona la trasmissione di questi dati
onClick="showMap('nome','43.5636150,10.3444740')

in php riesco a trasmetterli ma vorrei capire perchè così non funziona.

in oltre se aggiungo un traget al link di chiusura non si chiude il
layer "<a href="#1" >Torna Alla
Scheda</a> "
-----

<html><head>
<link rel="stylesheet" href="css/stili.css">

<link rel="stylesheet"
href="http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.css" /> <script
src="http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.js"></script> <?php
if (isset($_GET['myPosition'])){
$myPosition=$_GET['myPosition'];} ?>

<script type="text/javascript">


function showMap( nome,myPosition) {


var myLayer = document.createElement('div');
myLayer.id = 'mapLayer';
myLayer.style.position = 'absolute';
myLayer.style.left = '10px';
myLayer.style.top = '10px';
myLayer.style.width = '90%';

myLayer.style.padding = '10px';
myLayer.style.background = '#B6DEE2';
myLayer.innerHTML = ' <a href="" onClick="showMap( );">Torna Alla
Scheda</a> <div id="map"></div> '; document.body.appendChild(myLayer);


var map = L.map('map').setView([+myPosition], 12);

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a
href="http://osm.org/copyright">OpenStreetMap</a>
contributors' }).addTo(map);




L.marker([+myPosition]).addTo(map)
.bindPopup(+nome).openPopup();

}



</script>
</head><body bgcolor=red>Guarda Nella


<a href="#" onClick="showMap('nome','43.5636150,10.3444740');"
>mappa</a>

<br>


</body></html>

Alessandro Pellizzari

unread,
Apr 28, 2018, 6:54:32 AM4/28/18
to
On 28/04/18 09:58, Enrico Maria Chellini wrote:

> myLayer.innerHTML = ' <a href="" onClick="showMap( );">Torna Alla
> Scheda</a> <div id="map"></div> '; document.body.appendChild(myLayer);

Non scrivo codice del genere da un pezzo, ma mi pare che quello che
inietti con innerHTML è "puro testo". Gli eventi che appendi in questo
modo non vengono connessi.

Devi creare l'elemento A, attaccargli l'evento e poi attaccare
l'elemento A all'elemento myLayer con appendChild (vado a memoria,
controlla le funzioni)

Bye.

Enrico Maria Chellini

unread,
Apr 28, 2018, 11:17:34 AM4/28/18
to
Il giorno Sat, 28 Apr 2018 11:54:30 +0100
Alessandro Pellizzari <shur...@amiran.it> ha scritto:
UHM.. non ho capito .. ma cerco di spiegarmi meglio;

myLayer si apre e anche la mappa si apre, ma senza coordinate.

se faccio

function saluta(nome,cognome) { //nome è l’argomento
alert("ciao"+nome+cognome);
}

<a href="#"
onClick="saluta('enrico','43.5636150,10.3444740');">mappa</a>

il messaggio di allert mi viene corretto con nome e coordinate

ovvero +nome assume "enrico", +cognome assume "43.5636150,10.3444740"

ma nel codice della mappa che ho postato prima invece nel sorgente
rimane +nome e +myPosition
+nome +myPosition non me li trasforma nei valori inviati, al contrario
della funzione "saluta".

in PHP invece metto
"" var map = L.map('map').setView([<?php echo $myPosition; ?>],
12);

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a
href="http://osm.org/copyright">OpenStreetMap</a>
contributors' }).addTo(map);




L.marker([<?php echo $myPosition; ?>]).addTo(map)
.bindPopup("Posizione ").openPopup();

}

<a href="prova.php?myPosition=43.5636150,10.3444740"
onmousedown="showLayer();" >mappa</a>""
----

funziona.

help!




Alessandro Pellizzari

unread,
Apr 28, 2018, 11:34:22 AM4/28/18
to
On 28/04/18 16:13, Enrico Maria Chellini wrote:

> ma nel codice della mappa che ho postato prima invece nel sorgente
> rimane +nome e +myPosition
> +nome +myPosition non me li trasforma nei valori inviati, al contrario
> della funzione "saluta".
>
> in PHP invece metto
> "" var map = L.map('map').setView([<?php echo $myPosition; ?>],
> 12);

Questo perché PHP genera una stringa che poi diventa "codice javascript".

Se sei in Javascript, quella funzione (setView) accetta un parametro che
è un array di floating-point.

Quell che fai tu qui:

var map = L.map('map').setView([+myPosition], 12);
L.marker([+myPosition]).addTo(map)
.bindPopup(+nome).openPopup();

È dirgli: "prendi myPosition e nome, trasformali in numeri e sommaci 0"

Per nome è semplice: togli il +

Per myPosition è più complicato. O passi le due coordinate
separatamente, oppure devi parsare la stringa a mano.

La prima è più semplice:

function showMap( nome, x, y) {
...
var map = L.map('map').setView([x, y], 12);
...
L.marker([x, y]).addTo(map).bindPopup(nome).openPopup();
}

Enrico Maria Chellini

unread,
Apr 30, 2018, 6:38:53 AM4/30/18
to
.
>
> La prima è più semplice:
>
> function showMap( nome, x, y) {
> ...
> var map = L.map('map').setView([x, y], 12);
> ...
> L.marker([x, y]).addTo(map).bindPopup(nome).openPopup();
> }
>


Thank.

Funziona
Enrico

Enrico Maria Chellini

unread,
Apr 30, 2018, 6:42:32 AM4/30/18
to

>
> Thank.
>
> Funziona
> Enrico
>

ma mi rimane il problema per la chiusura della funzione

per chiudere la mappa, myLayer se metto href="#1" non si chiude e ho
bisogno del target


Enrico


Enrico Maria Chellini

unread,
Apr 30, 2018, 6:43:28 AM4/30/18
to

> ma mi rimane il problema per la chiusura della funzione
>
> per chiudere la mappa, myLayer se metto href="#1" non si chiude e ho
> bisogno del target
>
>
> Enrico
>
>

ps. se metto troppo codice di esempio non mi fa spedire i post.
Enrico

Enrico Maria Chellini

unread,
May 6, 2018, 12:20:04 PM5/6/18
to

> >
> >
>
> ps. se metto troppo codice di esempio non mi fa spedire i post.
> Enrico

scusate ancora ma vediamo se riesco a capire un po' come funziona
javascript

allora

con il primo click href="#° onclick attivo la funzione showMap()

adesso per chiuderla potrei fare href="#1" che mi da il target che mi
serve e chiamare onclick="chiudi();"

dentro chiudi() {
// ci posso mettere qualcosa che mi chiuda showMap

showMap return false
}

ma sbaglio qualcosa ..





0 new messages