• 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

Cloud VPS
0 głosów
361 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 307 wizyt
0 głosów
2 odpowiedzi 579 wizyt
0 głosów
0 odpowiedzi 123 wizyt
pytanie zadane 28 kwietnia 2020 w JavaScript przez poldeeek Mądrala (5,980 p.)

93,454 zapytań

142,449 odpowiedzi

322,718 komentarzy

62,833 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

Kursy INF.02 i INF.03
...