JS변수를 PHP변수로 받아서 DB저장시 스크립트로 저장되네요 채택완료
고수님들, 안녕하세요.
js변수를 php 변수로 받아서 update 하려고 합니다.
</p>
<p> <script>
var swlat = swLatLng.getLat();
var swlng = swLatLng.getLng();
var nelat = neLatLng.getLat();
var nelng = neLatLng.getLng();</p>
<p></script></p>
<p>
<?php
$wr_1 = "<script>document.write(swlat);</script>";
$wr_2 = "<script>document.write(swlng);</script>";
$wr_3 = "<script>document.write(nelat);</script>";
$wr_4 = "<script>document.write(nelng);</script>";</p>
<p> $query1 = " update $write_table set wr_1 = '$wr_1' , wr_2 = '$wr_2' , wr_3 = '$wr_3' , wr_4 = '$wr_4' where wr_id = '$view[wr_id]' ";
echo $query1;
sql_query($query1);</p>
<p> ?></p>
<p>
echo $query1;
에는 update g5_wonokwrite_commute_area set wr_1 = '36.44910809047835' , wr_2 = '128.56638847355053' , wr_3 = '36.45229328573961' , wr_4 = '128.57493410795699' where wr_id = '25'
정상 노출되어 db에서 작동시는 업데이트가 됩니다.
근데, 페이지에서 작동되면 DB에 wr_1에 변수값이 아닌,
문자열 그대로 업데이트 되네요.
참 난감합니다.. 어떤방법이 있을까요?
답변 3개
ajax 로 처리해야 됩니다.
1) ajax 처리 파일 생성 (ex. 동일 디렉토리에 db_update.php 파일 생성)
</p>
<p><?php</p>
<p>include "../common.php"; // 그누보드 루트의 common.php 경로를 정확하게 지정</p>
<p> </p>
<p>$write_table = $g5['write_prefix'] . $bo_table;</p>
<p>$query1 = " update $write_table set wr_1 = '$wr_1' , wr_2 = '$wr_2' , wr_3 = '$wr_3' , wr_4 = '$wr_4' where wr_id = '$wr_id' ";
// echo $query1;
sql_query($query1);</p>
<p>
2) ajax 처리 코드 추가
</p>
<p><script>
var swlat = swLatLng.getLat();
var swlng = swLatLng.getLng();
var nelat = neLatLng.getLat();
var nelng = neLatLng.getLng();</p>
<p> </p>
<p> var _bo = '<?php echo $bo_table ?>';
var _id = '<?php echo $wr_id ?>';
$.ajax({
url: './db_update.php',
type: 'POST',
data: {wr_1 : swlat, wr_2 : swlng, wr_3 : nelat, wr_4 : nelng, bo_table : _bo, wr_id : _id},
success: function(data) {
}
});
</script></p>
<p>
답변에 대한 댓글 4개
url: './db_update.php',
type: 'POST',
data: {wr_1:swlat, wr_2:swlng, wr_3:nelat, wr_4:nelng, bo_table:_bo, wr_id:_id},
success: function(data) {
console.log(data);
}
});
에서는 console.log(data);가
<script>alert(' 에
해당되는 직원이 없습니다. 다시 확인해 주세요.');window.history.back();</script>
이렇게 나오네요?
ajax 처리 파일에서 문법적 오류 등은 없는지..
디버깅을 해야 될 듯 합니다. https://sir.kr/g5_tip/16118
url : "<?php echo $board_skin_url?>/db_update.php",
로 변경하여 잘 작동 되었습니다.
댓글을 작성하려면 로그인이 필요합니다.
자바스크립트에서 php 값을 변수로 쓸 수는 있지만 그 반대는 원리적으로 불가능합니다.
그건 아버지보다 내가 먼저 탄생했다는 의미와 같으니까요. 즉 과거와 현재의 시제가 바뀔 수는 없는 것이죠.
이게 가능하려면 결국 아작스를 이용하셔야 합니다.
왜냐하면 아작스의 시제는 모두 실시간 곧 현재진행형이기 때문입니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
db_update.php 에서 왜 데이타를 받지 못하는걸가요?
폴더는 \theme\company\mobile\skin\board\commute_area
여서
include_once "../../../../../../common.php";
로 하였습니다.
../가 4개, 5개, 6개 다해봤는데... 안되네요..
db_update.php에서 POST 로 받던 아니던, 반응이 없네요.
$wr_id = $_POST['wr_id'];
echo '$wr_id'.$wr_id.'<br>';