테스트 사이트 - 개발 중인 베타 버전입니다

와 진짜 echo 때문에 미츄어 버리겠습니다!! 채택완료

그누초보님 11년 전 조회 5,729

지난번 해답을 얻은것 같아서 정말 좋았는데요

이 빌어먹을 echo 문!! 진짜 돌아버리겠습니다 ㅠㅠ 살려주세요!!

 

아래 소스는 구글 다중마커 게시판인데요 마커 클릭후 나오는 말풍선에서 게시글 클릭시 이동하는 부분인데요 

 

echo ("addMarker($lat, $lon, '

"><a href=\"{$g4[path]}/bbs/board.php?bo_table={$bo_table}&wr_id={$list[$i][wr_id]}&view_mode=bbs\">$name
$desc
정보1 : $addone
정보2 : $addtwo
',$icon);\n");

 

붉은 부분이 해당 게시글의 제목이고 클릭했을때 이동하는 부분인데

저 부분에다가

 

 

이런식으로 onclick="document.location.href='이동할주소'" 온클릭을 써서 페이지를 이동시키고 싶은데요

문제는!!

document.location.href=

이게!! 이게!! 안먹혀요 ㅠㅠ

 

지난번 질문글을 통하여 echo 문 안에서는 " 를 할때 \이걸 앞에 붙여주라고 해서 더이상 에러는 안나는데요

화면이 무응답입니다...

 

echo 문 안에서 onclick 이게 먹히게 하려면 어떻게 해야할까요 ㅠㅠ

 

그리고 지난번 답변글에서 echo 문안에서 하지말고 밖에서 하는 법도 있다고 하셨는데

도통 이해가 가질 않습니다!!

 

부디 사람하나 살려주세요 ㅠㅠ 부탁드려요~~!!!

 

 

 

 

</p><p><script type="text/javascript"></p><p></script></p><p>var icon_1 = new google.maps.MarkerImage("/add/ico_01.gif", new google.maps.Size(27, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 32)); 
var icon_2 = new google.maps.MarkerImage("/add/ico_02.gif", new google.maps.Size(27, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 32)); 
var yellow_icon = new google.maps.MarkerImage("<a href="<a href="http://maps.google.com/mapfiles/ms/micons/yellow.png" target="_blank" rel="noopener noreferrer">http://maps.google.com/mapfiles/ms/micons/yellow.png</a>"><a href="http://maps.google.com/mapfiles/ms/micons/yellow.png" target="_blank" rel="noopener noreferrer">http://maps.google.com/mapfiles/ms/micons/yellow.png</a></a>", new google.maps.Size(32, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 32)); // 기본마커</p><p>var center = null;
var map = null;
var currentPopup;
var bounds = new google.maps.LatLngBounds();</p><p>function addMarker(lat, lng, info,icon) {
 var pt = new google.maps.LatLng(lat, lng);</p><p> bounds.extend(pt);</p><p> var marker = new google.maps.Marker({
  position: pt,
  icon: icon,
  map: map
 });</p><p> var popup = new google.maps.InfoWindow({
  content: info,
  maxWidth: 300
 });
 google.maps.event.addListener(marker, "click", function() {
  if (currentPopup != null) {
   currentPopup.close();
   currentPopup = null;
  }
  popup.open(map, marker);
  currentPopup = popup;
 });
}
function initMap() {
 map = new google.maps.Map(document.getElementById("map"), {
  center: new google.maps.LatLng(37.3175094, 126.8310318),
  zoom: 11,
  mapTypeId: google.maps.MapTypeId.ROADMAP,
  mapTypeControl: false,
  mapTypeControlOptions: {
   style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
  },
  navigationControl: true,
  navigationControlOptions: {
   style: google.maps.NavigationControlStyle.SMALL
  }
 });</p><p> <?
     for ($i=0; $i<count($list); $i++) { 
  $name=strip_tags($list[$i][subject]);
  $lat=$list[$i][wr_4];
  $lon=$list[$i][wr_5];
  $desc=$list[$i][wr_3];
  $addone=$list[$i][wr_6];
  $addtwo=$list[$i][wr_7];</p><p>
  if ($is_category && $list[$i][ca_name]) { 
   switch ($list[$i][ca_name]) {
   case "A":    $icon = "icon_1";  break;
   case "B":    $icon = "icon_2";  break;
   default:
    $icon ="yellow_icon";
   }
  }
  echo ("addMarker($lat, $lon, '<div style=\"height:90;\"><a href=\"{$g4[path]}/bbs/board.php?bo_table={$bo_table}&wr_id={$list[$i][wr_id]}&view_mode=bbs\"><b>$name</b></a></br>$desc</br>정보1&nbsp:&nbsp$addone</br>정보2&nbsp:&nbsp$addtwo</div>',$icon);\n");
 }
 ?>
 center = bounds.getCenter();</p><p>google.maps.event.addListener(map, 'zoom_changed', function() {
    zoomChangeBoundsListener = 
        google.maps.event.addListener(map, 'bounds_changed', function(event) {
            if (this.getZoom() > 12 && this.initialZoom == true) {
                // Change max/min zoom here
                this.setZoom(12);
                this.initialZoom = false;
            }
        google.maps.event.removeListener(zoomChangeBoundsListener);
    });
});
map.initialZoom = true;</p><p> map.fitBounds(bounds);
}</p><p></script>​</p><p>

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
11년 전

 

위 이미지를 보시면,  document는  DOM(document object model) 타입이고,

location은 BOM(Browser object model)타입인걸 알수 있습니다.  

 

document.location 은 성립이 안되구요
굳이 하시려면,   window.location 으로 하시는게 맞으시고

 

일반적으로는 location.href= 로도 충분히 실행이 됩니다.  앞에 window는 생략하더라도

브라우저에서 처리해주기 때문이죠.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

그누초보님
11년 전
하얀마녀님 감사합니다.
문제는 ' 이거였습니다 이미 echo 문이 선언된 상태에서 앞에 ' 가 들어가있기 때문에
<a href=\"#\" onclick=\"document.location.href='이동주소'\">
이 자체가 안되는거였어요 ㅠㅠ
<a href=# onclick=document.location.href=\"이동주소\">
요로케 하니깐 잘됩니다.

그리고 하얀마녀님이 알기쉽게 올려주신 location 에 대해서는 정말 많은 참고가 되었습니다.
DOM 과 BOM 그리고 JS 까지 이해하기에는 앞날이 너무나 멀지만 개념은 조금 알겠네요^^

정말 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인