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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
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 써서 문제 해결 했어요 

 

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

회원로그인

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