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

JS변수를 PHP변수로 받아서 DB저장시 스크립트로 저장되네요 채택완료

godglee 3년 전 조회 2,592

고수님들, 안녕하세요. 

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개

채택된 답변
+20 포인트
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개

g
godglee
3년 전
ajax 에서는 console.log(_id); 로 잘 나타나는데,
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>';
g
godglee
3년 전
$.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) {
console.log(data);
}
});
에서는 console.log(data);가
<script>alert(' 에
해당되는 직원이 없습니다. 다시 확인해 주세요.');window.history.back();</script>
이렇게 나오네요?
마르스컴퍼니
3년 전
ajax 처리 파일로 전달이 잘 되는지..

ajax 처리 파일에서 문법적 오류 등은 없는지..

디버깅을 해야 될 듯 합니다. https://sir.kr/g5_tip/16118
g
godglee
3년 전
마르스컴퍼니 님, 감사합니다.
url : "<?php echo $board_skin_url?>/db_update.php",
로 변경하여 잘 작동 되었습니다.

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

자바스크립트에서 php 값을 변수로 쓸 수는 있지만 그 반대는 원리적으로 불가능합니다.

그건 아버지보다 내가 먼저 탄생했다는 의미와  같으니까요. 즉 과거와 현재의 시제가 바뀔 수는 없는 것이죠.

 

이게 가능하려면 결국 아작스를 이용하셔야 합니다.

왜냐하면 아작스의 시제는 모두 실시간 곧 현재진행형이기 때문입니다.

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

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

js변수를 받아서 php 에 뿌려주려면 ajax를 써서 해보세요

맵을 이용해서 만든거 같은데 저는 ajax 써서 문제 해결 했어요 

 

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

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

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

로그인