2016-11-06 2 views
0

배열로 값을 설정 한 html 양식 요소가 있습니다. 이 값 중 하나를 jQuery를 통해 배열 밖으로 가져 오려고합니다. 어떻게 이뤄지나요? 여기 내 코드가있다. 제 설명이 명확하지 않은 것일 수도 있습니다. 고맙습니다!폼 요소의 값으로 배열 요소를 배열 밖으로 가져올 수 있습니까?

var lat = 0; 
    var long = 0; 

    //gets the latitude and longitude when a user clicks on any place on the map 

    map.on('click', function(e) { 
     lat = e.latlng.lat; 
     long = e.latlng.lng; 

    //store the lat and long in an array 

     var latlong = [lat, long]; 

    //here I am setting the value of my an element in my form as the array of lat and long 

     document.getElement(".<?= $this->getName() ?>").set("value", latlong); 
     var getLatlong = jQuery(".<?= $this->getName() ?>").val(); 
     console.log("retrieved: " + getLatlong); 

    //it saves and retrieves properly. 

    //THE PROBLEM IS HERE 
    //THE PROBLEM IS HERE 
     var lat = $(".<?= $this->getName() ?>").val()[0]; 
     var long = $(".<?= $this->getName() ?>").val()[1]; 
    //THE PROBLEM IS HERE 
    //THE PROBLEM IS HERE 


    }); 

이 모든 것이 정상적으로 실행되지만 원하는 결과를 얻지 못합니다. 내가

//THE PROBLEM IS HERE 
     var lat = $(".<?= $this->getName() ?>").val()[0]; //returns 9 
     var long = $(".<?= $this->getName() ?>").val()[1]; //returns 4 
     var long = $(".<?= $this->getName() ?>").val()[3]; //returns 2 
     var long = $(".<?= $this->getName() ?>").val()[4]; //returns 3 
    //THE PROBLEM IS HERE 

아래 코드의 라인 중 하나를 사용하려고하면 위도 나 경도 중 하나를 얻을 수 있습니다 "예 : 94.2323을, 12.9932"

The index [0] returns 9, 
the index [1] returns 4, 
the index [3] returns 2 

94.2323 배열이 아닌 경우 등 lat와 long 배열로. [0]은 94.2323을 반환하고 [1]은 12.9932를 반환하기를 원합니다.

나는 이것을 설명하고이 질문을 형식화하려고 노력했다. 고맙습니다.

+1

Array로 변환하는 Array 형식 JSON로 변환하는 JSON.stringify()를 사용할 수 있습니까? 그러지 마. 대신 새로운 변수 이름을 사용하십시오. 자바 스크립트는 코드 블록에서 어디서 정의했는지에 관계없이 실제로 (모든 범위 내에서) 먼저 모든 'var'문을 실행합니다. –

답변

1

당신은

document.getElement(".<?= $this->getName() ?>") 
.set("value", JSON.stringify(latlong)); 

JSON.parse() 당신은 반복해서 같은 변수를 정의하는 JSON 포맷 String

var getLatlong = JSON.parse(jQuery(".<?= $this->getName() ?>").val()); 
console.log(getLatlong[0], getLatlong[1]); // do stuff 
+0

이것은 자바에서 작동합니다. 엄청 고마워. 그것은 내가 해결하려고하는 문제를 완전히 해결하지는 않지만. 어떻게 이것을 PHP로 작성할 수 있습니까? –

+0

$ info-> latitude = $ _REQUEST [ "mapquestlocation"] [0]; $ info-> longitude = $ _REQUEST [ "mapquestlocation"] [1]; –

+0

'php'는'latitude','longitude'에 대해 무엇을 리턴합니까? – guest271314

관련 문제