와 진짜 echo 때문에 미츄어 버리겠습니다!!
본문
지난번 해답을 얻은것 같아서 정말 좋았는데요
이 빌어먹을 echo 문!! 진짜 돌아버리겠습니다 ㅠㅠ 살려주세요!!
아래 소스는 구글 다중마커 게시판인데요 마커 클릭후 나오는 말풍선에서 게시글 클릭시 이동하는 부분인데요
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 : $addone</br>정보2 : $addtwo</div>',$icon);\n");
붉은 부분이 해당 게시글의 제목이고 클릭했을때 이동하는 부분인데
저 부분에다가
<a href=\"#\" onclick=\"document.location.href='이동주소'\">
이런식으로 onclick="document.location.href='이동할주소'" 온클릭을 써서 페이지를 이동시키고 싶은데요
문제는!!
document.location.href=
이게!! 이게!! 안먹혀요 ㅠㅠ
지난번 질문글을 통하여 echo 문 안에서는 " 를 할때 \이걸 앞에 붙여주라고 해서 더이상 에러는 안나는데요
화면이 무응답입니다...
echo 문 안에서 onclick 이게 먹히게 하려면 어떻게 해야할까요 ㅠㅠ
그리고 지난번 답변글에서 echo 문안에서 하지말고 밖에서 하는 법도 있다고 하셨는데
도통 이해가 가질 않습니다!!
부디 사람하나 살려주세요 ㅠㅠ 부탁드려요~~!!!
<script type="text/javascript">
</script>
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("http://maps.google.com/mapfiles/ms/micons/yellow.png", new google.maps.Size(32, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 32)); // 기본마커
var center = null;
var map = null;
var currentPopup;
var bounds = new google.maps.LatLngBounds();
function addMarker(lat, lng, info,icon) {
var pt = new google.maps.LatLng(lat, lng);
bounds.extend(pt);
var marker = new google.maps.Marker({
position: pt,
icon: icon,
map: map
});
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
}
});
<?
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];
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 : $addone</br>정보2 : $addtwo</div>',$icon);\n");
}
?>
center = bounds.getCenter();
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;
map.fitBounds(bounds);
}
</script>
!-->
답변 1
위 이미지를 보시면, document는 DOM(document object model) 타입이고,
location은 BOM(Browser object model)타입인걸 알수 있습니다.
document.location 은 성립이 안되구요
굳이 하시려면, window.location 으로 하시는게 맞으시고
일반적으로는 location.href= 로도 충분히 실행이 됩니다. 앞에 window는 생략하더라도
브라우저에서 처리해주기 때문이죠.