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

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

QA

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

본문

고수님들, 안녕하세요. 

js변수를 php 변수로 받아서 update 하려고 합니다.

 


  <script>
    var swlat = swLatLng.getLat();
    var swlng = swLatLng.getLng();
    var nelat = neLatLng.getLat();
    var nelng = neLatLng.getLng();
</script>

<?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>";
 $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);
    ?>

 

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에 변수값이 아닌,

<script>document.write(swlat);</script> 문자열 그대로 업데이트 되네요.

참 난감합니다.. 어떤방법이 있을까요?

이 질문에 댓글 쓰기 :

답변 3

ajax 로 처리해야 됩니다.

 

1) ajax 처리 파일 생성 (ex. 동일 디렉토리에 db_update.php 파일 생성)


<?php
include "../common.php"; // 그누보드 루트의 common.php 경로를 정확하게 지정
 
$write_table = $g5['write_prefix'] . $bo_table;
$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);

 

2) ajax 처리 코드 추가


<script>
  var swlat = swLatLng.getLat();
  var swlng = swLatLng.getLng();
  var nelat = neLatLng.getLat();
  var nelng = neLatLng.getLng();
 
  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>

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>';

$.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>
이렇게 나오네요?

ajax 처리 파일로 전달이 잘 되는지..

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

디버깅을 해야 될 듯 합니다. https://sir.kr/g5_tip/16118

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

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

 

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

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

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

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

 

답변을 작성하시기 전에 로그인 해주세요.
전체 25
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT