leaflet on marker click pass attribute

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daniel van Seggelen

Daniel van Seggelen

11/01/2025 11:40:10
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
marker = L.marker(new L.LatLng(a[0], a[1]), { test: vid });
                        
                        //marker = L.marker([36.83711,-2.464459], {myCustomId: "abc123"});
                        //marker.bindPopup(decoded,customOptions);
                        markers.addLayer(marker);

            //console.log(a[0], a[1]);    
                        marker.on("click", function(e) {    
                           // this.options.myCustomId
                           // console.log(e.options.test);
                            
                            console.log(e.options["test"]) //prints "data"
                            
                           //  common(e.latlng.lat, e.latlng.lng);        
                            alert(e.options.test);
                            $.ajax({
                            type: 'GET',
                            url: "<?=HTML_ROOT?>ajax/getVestiging.php?vid="+vid,
                            //data: {waarde : waarde },
                            success: function(data) {
                                
                                
                                 $('#mapBody').html(data);
                                 $('#mapAdres').modal('show');
                            }



url: "
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=HTML_ROOT?>
ajax/getVestiging.php?vid="+vid Blijft altijd hetzelfde de laatste.

Als ik het attribuut test met een vid wil meegeven, dan krijg ik console errors:

winkels:1541 Uncaught TypeError: Cannot read properties of undefined (reading 'test')
at NewClass.<anonymous> (winkels:1541:50)
at NewClass.fire (leaflet-min.js:1:6407)
at NewClass._fireDOMEvent (leaflet-min.js:2:11898)
at NewClass._handleDOMEvent (leaflet-min.js:2:11124)
at HTMLDivElement.handler (leaflet-min.js:2:21095)

Snap er niks van, van volgens deze wijze zou het moeten werken met leaflet, zie hier wat voorbeelden.

https://stackoverflow.com/questions/17423261/how-to-pass-data-with-marker-in-leaflet-js

weet iemand een oplossing?
 
PHP hulp

PHP hulp

20/01/2025 20:15:10
 
Ivo P

Ivo P

13/01/2025 10:49:05
Quote Anchor link
het is me niet helder op welke regel jouw fout optreedt, maar

er staat een paar keer "e.options.test" in je script.

De foutmelding interpreteer ik als "Cannot read properties of undefined (reading 'test')"

"je probeert 'test' te lezen als property van iets dat geen object is maar een 'undefined' / leeg.

Dus dan zou e.options dus leeg zijn.

Mijn stappen zouden beginnen met het naar console.log sturen van e.options.
En dan kijken of dat inderdaad undefined. is.
Zo ja, dan het zelfde met e doen.
 
Daniel van Seggelen

Daniel van Seggelen

14/01/2025 15:43:47
Quote Anchor link
Bedankt het is opgelost inmiddels met

marker.on("click", function(e) {
vid = this.options.test;
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.