구글지도 wr_17값이 디비에 저장이 안됩니다. 코드좀...
본문
구글지도 관련입니다. wr_14값 wr_12/wr_13값은 db에 저장이 되어 보여집니다.
근데 wr_17값은 저장이 안됩니다. wr_16도요 wr_16은 저장안되도 되며 wr_17값을 디비에 저장하려면 어찌하는지요.
물론 wr_17필드는 있고 원래는 <div id="formatedAddress"></div>이것인데 제가 "formatedAddress" 을 "wr_17"로 수정했습니다.
쌩 초보입니다.
고수님! 좀 봐주심 대단히 감사하겠습니다. 꾸~벅
<table align="center" cellpadding="0" cellspacing="0" width="100%">
<tr><td>지도<br>
<?
if($write[wr_14] != '미사용') {
echo "<input type='radio' id=r1 name='wr_14' value='사용' checked>지도 사용";
echo "<input type='radio' id=r2 name='wr_14' value='미사용'>지도 미사용";
} else {
echo "<input type='radio' id=r1 name='wr_14' value='사용'>지도 사용";
echo "<input type='radio' id=r2 name='wr_14' value='미사용' checked>지도 미사용";
}
?>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=ko"></script>
<?
if ($write['wr_12']=='') $write['wr_12']='35.207327';
if ($write['wr_13']=='') $write['wr_13']='129.000475';
?>
<script type="text/javascript">
// 구글지도
var map;
var geocoder;
var centerChangedLast;
var reverseGeocodedLast;
var currentReverseGeocodeResponse;
function initialize() {
var wr_16 = new google.maps.LatLng(<?=$write['wr_12']?>, <?=$write['wr_13']?>);
var myOptions = {
zoom: 17,
scaleControl: true,
center: wr_16,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
geocoder = new google.maps.Geocoder();
// 리스너 Listener ////////////////////////////////////////////////////
google.maps.event.addListener(map, 'zoom_changed', function() {
document.getElementById("zoom_level").innerHTML = map.getZoom();
zoomLevel = map.getZoom();
if (zoomLevel > 19) {
map.setZoom(19);
}
if (zoomLevel < 1) {
map.setZoom(1);
}
});
setupEvents();
centerChanged();
}
function setupEvents() {
reverseGeocodedLast = new Date();
centerChangedLast = new Date();
setInterval(function() {
if((new Date()).getSeconds() - centerChangedLast.getSeconds() > 1) {
if(reverseGeocodedLast.getTime() < centerChangedLast.getTime())
reverseGeocode();
}
}, 1000);
google.maps.event.addListener(map, 'center_changed', centerChanged);
google.maps.event.addDomListener(document.getElementById('crosshair'),'dblclick', function() {
map.setZoom(map.getZoom() + 1);
});
}
function getCenterLatLngText() {
var nn = 1000000;
var tmpLat = Math.round(map.getCenter().lat()*nn)/nn;
var tmpLng = Math.round(map.getCenter().lng()*nn)/nn;
document.fwrite.wr_12.value = tmpLat;
document.fwrite.wr_13.value = tmpLng;
return tmpLat +', '+ tmpLng;
}
function centerChanged() {
centerChangedLast = new Date();
var wr_16 = getCenterLatLngText();
document.getElementById('wr_16').innerHTML = wr_16;
document.getElementById('wr_17').innerHTML = 'wr_17';
currentReverseGeocodeResponse = null;
}
function reverseGeocode() {
reverseGeocodedLast = new Date();
geocoder.geocode({latLng:map.getCenter()},reverseGeocodeResult);
}
function reverseGeocodeResult(results, status) {
currentReverseGeocodeResponse = results;
if(status == 'OK') {
if(results.length == 0) {
document.getElementById('wr_17').innerHTML = 'None';
} else {
document.getElementById('wr_17').innerHTML = results[0].formatted_address;
}
} else {
document.getElementById('wr_17').innerHTML = 'Error';
}
}
function geocode() {
var address = document.getElementById("address").value;
geocoder.geocode({
'address': address,
'partialmatch': true}, geocodeResult);
}
function geocodeResult(results, status) {
if (status == 'OK' && results.length > 0) {
map.fitBounds(results[0].geometry.viewport);
} else {
alert("Info: " + status);
}
}
</script>
<br>
간단주소검색: <input type="text" id="address" size="40" onKeyDown="if(event.keyCode==13){geocode();}" />
<input type="button" style = "cursor: pointer;" value=" Go " onclick="geocode()">
</div>
<div id="map">
<div id="map_canvas" style="width:<?=$map_width?>px; height:<?=$map_height?>px;"></div>
<div id="crosshair"></div>
<br>
위도/경도:<div id='wr_16' name="wr_16" readonly style="font-family:돋움; font-size:17px; background-color:white; margin:1px; padding:1px; border-width:2px; border-color:blue; border-style:dashed;"></div>
주소검색보기:<div id="wr_17" type="text" name="wr_17" style="font-family:돋움; font-size:17px; background-color:white; margin:1px; padding:1px; border-width:2px; border-color:blue; border-style:dashed;"></div>
</td></tr></table>
답변 2
<div id="formatedAddress"></div> 요거랑 wr_16, wr_17 기존껄로 다시 복원 하신 담에
아래 내용 다시 넣으시고요.
<input type='hidden' name="wr_16" id="wr_16" value="">
<input type='hidden' name="wr_17" id="wr_17" value="">
innerHTML 하시는 부분에 다시 value값으로 입력하게끔 추가 하시면 됩니다.
document.getElementById('wr_17').value = '값';
즉, innerHTML 은 화면에 출력되는 부분을 설정하는 거구요.
value 는 DB에 들어갈 값을 입력하는 곳입니다.
그리고 한 페이지에서는 중복된 id를 사용하시면 에러가 날수 있습니다. id는 중복없이 사용하시면 됩니다.
기본적인 개념없이 작업하시는 좀 어려운 작업을 하고 계시네요.
<div>는 입력필드가 아닙니다.
<input type='hidden' name='wr_16' id='wr_16' value='값'>
<input type='hidden' name='wr_17' id='wr_17' value='값'>
갑을 받으셔야 합니다.