2014-07-08 3 views
0

이것은 간단한 문제 일 수 있지만 도움을 주시면 감사하겠습니다.
MVC 모델에서 위도와 경도 포인트의 다차원 영역 인 $ _SESSION 변수를로드했습니다. 내가

  for($i=0; $i<count($markets['results']); $i++) { 
     . 
     . 
    $marketinfo["lat"][$i] = floatval($lat); 
      $marketinfo["long"][$i] = floatval($lon); 
      }; 
      $_SESSION['MARKETLOCATION']['LAT'] = $marketinfo["lat"]; 
      $_SESSION['MARKETLOCATION']['LONG'] = $marketinfo["long"]; 

에서이로드 그 다음에 다음보기 섹션에서이 코드와 헤더에 대한 _template를 호출하고 아래로

<script type="text/javascript"> 
      function createmap(LatLong) { 
      var firstpass = true; 
      for (var i = 0; i < $LatLong.length; i++) { 
        var lat = $LatLong['LAT'][i]; 
        var lng = $LatLong['LONG'][i]; 
        if (firstpass === true){ 
          var map = new google.maps.Map(document.getElementById('map-canvas'),{ 
           zoom: 10, 
           center: new google.maps.LatLng($lat[0]+','+$lng[0]), 
           mapTypeId: google.maps.MapTypeId.ROADMAP 
          }); 
          firstpass = false; 
        } 
        var infowindow = new google.maps.InfoWindow(); 
        marker = new google.maps.Marker({ 
         position: new google.maps.LatLng($lat[i]+','+$lng[i]), 
         map: map 
        }); 

        } 
      window.onload=function(){("createmap($_SESSION['MARKETLOCATION']");}; 
      } 
     </script> 
    </head> 
    <body> 
     <div class='Mapbox' id = 'map-canvas' ></div> 

문제는 전혀 표시되지 않는지도입니다. 이 코드를 작성하기 전에 테스트했기 때문에 API 키가 정확하다는 것을 알고 있습니다. 그래서 나는 probibaly 변수 다시 어떤 통찰력을 감상 할 수있다

+0

:

당신은 뭔가를해야한다. – wildandjam

답변

0

자바 스크립트와 PHP는 두 개의 서로 다른 언어입니다. PHP에서 변수를 출력해야하지만 $_SESSION['MARKETLOCATION']은 배열이므로 echo 할 수는 없습니다. 당신의 창로드 기능을 확인

var session_variable = <?php echo json_encode($_SESSION['MARKETLOCATION']); ?>; 
// now you might have to do some processing on session_variable like parsing it... 
// for an example: 
var session_object = JSON.parse(session_variable); 
window.onload=function(){ createmap(session_object); }; 
+0

이 시도하고 올바른 배열 정보를 표시하지만 올바르게 한 번만 구문 분석 할 것으로 보이지 않는지도 만들기 ... 내 제안을 바꿀 때 출력 여기 – Jan

+0

@Jan'console.log (LatLong);을 참조하십시오. 아마 배열이 아니라 2 개의 속성을 가진 객체라는 것을 알 수있을 것입니다. – jeroen

+1

고맙습니다 jeroen 당신이 올바른 session_variable 실제로 2 개의 배열 session_variable Object {LAT : Array [19], LONG : Array [19]} ) 이것은 마커에 대한 위도가 길었 기 때문에 그냥 함수에 전달 된 매개 변수에서 참조하십시오. 내 코드에서 (즉, 위치 : new google.maps.LatLng (session_variable.LAT [i], session_variable.LONG [i])) 다시 한번 고맙다고 생각합니다. – Jan

0

수정하면 코드를 세션 전달과 관련이있다 생각 :

window.onload=function(){("createmap(<?php echo $_SESSION['MARKETLOCATION'] ?>");}; 
+0

OP에 그들이 무엇을 잘못했는지, 어떻게 코드가 문제를 해결할 지 설명하십시오. 이것은 그들의 이해를 도울 것입니다. – Vulcronos

관련 문제