• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kliknięcie w znacznik span i wyświetlenie drogi na mapie

Object Storage Arubacloud
0 głosów
218 wizyt
pytanie zadane 25 sierpnia 2016 w JavaScript przez Alterwar Dyskutant (7,650 p.)

Witam,

mam mapkę, która pobiera moją aktualną pozycję oraz wyświetla dane ( w znaczniku span ) najbliższego obiektu. Co "zrobić" z tym elementem (najbliższym obiektem), abym po tapnięciu w niego (tylko wersja mobile) mógł pobrać jego dane? Dane przesyłam poprzez ajax. Tutaj kawałek kodu. Może ktoś zrozumie o co mi chodzi. Gdybym dorobił do tego inputy w formularzu nie byłoby problemu, jednak potrzebuję to rozwiązać w sposób który tutaj opisuję.

$.ajax(
{
    type:"GET", 
    url:"pobierz.php", 
    contentType:"application/json; charset=utf-8", 
    dataType:'json', 
 
    success: function(json) 
        { 
             

   			 
            for (var klucz in json)
                {
                    var wiersz = json[klucz];    
                    var id = wiersz[0];
                    var nazwaapteki = wiersz[1];
                    var szer = wiersz[3];
                    var dl = wiersz[4];								                   
                     
                    $("<span>id: "+id+" nazwa: "+nazwaapteki+" szerokosc "+szer+" </span>")
                    .appendTo('#wykaz')
                    .append("<hr>")
                } 

 

1 odpowiedź

0 głosów
odpowiedź 26 sierpnia 2016 przez ShiroUmizake Nałogowiec (46,300 p.)
Pobrać do czego, do elementu HTML, plik, jakieś okienko pop -up?? Bo rozumiem, ze moduł pobierz. php wysyła request do servera mysQL.

Przede wszystkim musiałbyś, posiadać funckję która by sprawdzała klasę" Navigator" jak dobrze pamiętam. Bodajże, to było platform. (link : https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID/platform) ale najlepiej również .userAgent. A jak nie chce Ci się bawić to istnieje dobrze narzędzie do tego nazywa się -> modernizr. I tam dało radę sprawdzić, czy ekran telefonu jest dotykalny.
komentarz 26 sierpnia 2016 przez Alterwar Dyskutant (7,650 p.)
Pobrać te dane i wsadzić je w jakiś element HTML z value abym mógł się do nich odwoływać. Bo teraz zmienne są przekazywane w formie textu w znaczniku span, więc klikając w nie nic mi to nie daje. Mam napisana funkcje która wyrysuje mi droge z mojego punktu do określonego obiektu. Tylko jak sir odwołać skoro element jest przekazywany w takiej formie id : X, obiekt : obiekt
komentarz 26 sierpnia 2016 przez ShiroUmizake Nałogowiec (46,300 p.)
edycja 26 sierpnia 2016 przez ShiroUmizake

Ok, czyli po prostu chcesz przekonwertować DOM_String na Number. By traktował to jako, jakieś dane do obliczeń. Zakładam, że każdy String uzyskany jest poprawną liczbą,

Masz rację za pomocą inputów da radę uzsykać value.

Ale jest inny sposób.

Najlepiej jakbyś węzeł gdzie są informacje z JSONA odzelił od zwykłego tekstu, ułatwi to działanie skryptu. Bo inaczej trzeba pobrać String, podzelić, znależć słowa ktore nie pasują, wyrzucić niepotrzebne dane z tablicy. Powiedzmy, że tak zrobiłeś . Mamy 3 jakieś węzły, w których jest zawarta jedna informacja : (nazwa_apteki, szerokosc, dlugosc). Używając innerHTML nie tylko możemy wkleić coś do węzła ale również wyciągnąć.

https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML

document.getElementById("jakisButton").addEventListener ('click' , getLocalization , false)

function getLocalization ()
{
var table = new Array ();
var namePharamacy = Number.parseInt((document.getElementById("wezelApteka").innerHTML))
var geoLEngth  = Number.parseInt((document.getElementById("wezelLength").innerHTML));
var geoWidth = Number.parseInt((document.getElementById("wezelWidth").innerHTML));
table.push(namePharamacy);
table.push(geoLEength);
table.push(geoWidth);
Summary (Array)
}

function Summary (Array){
// Obliczenia.
}

Mam nadzieje, że tobie o takie coś chodziło.

Co się dokładnie stało.

Utworzyłem konstruktor obiektu Number, jako argument przekazałem mu węzeł, a następnie kazałem się odwołać do jednego z pól z DOM (innnerHTML), która zwraca String, czyli to co jest argumentem Number.A następnie odpaliłem metodę parseInt która zwraca nasz int :).

Oczywiście jest to rozwiązanie napisane w czystym JS. Ale jak już obsługujesz AJAX to myśle, że znajdziesz odpowiednik w jQuery :).

 

 

 

komentarz 26 sierpnia 2016 przez Alterwar Dyskutant (7,650 p.)
Cholerne wielkie dzięki :) sprawdzę to jutro jak tylko będę miał dostęp i powiem jak poszlo, jak coś dam znać jutro. Dzięki wielkie za poświęcenie czasu :)

Podobne pytania

+1 głos
0 odpowiedzi 287 wizyt
0 głosów
2 odpowiedzi 506 wizyt
0 głosów
0 odpowiedzi 84 wizyt
pytanie zadane 28 kwietnia 2020 w JavaScript przez poldeeek Mądrala (5,980 p.)

92,537 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,922 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...