그누어린이입니다. 아죠씨들에게 질문 좀 드릴게요~

그누어린이입니다. 아죠씨들에게 질문 좀 드릴게요~

QA

그누어린이입니다. 아죠씨들에게 질문 좀 드릴게요~

본문

도움으로 거의 정상까지 왔습니다. 그런데 한가지가 막힙니다. 흑흑

 

1.버튼을 누르면 모달창띄우고 select까지는 했습니다.

2.문제는 모달창스킨은 하나만 쓰는데 select구문중에

 

sending_idx in ('1')

버튼값이 1~10까지 있는데 갈호안의 숫자를 버튼누를때 ajax로 보내서 

아래코드식으로 

 

 

<?php

$list = array();
$result = sql_query("SELECT wr_name, wr_id, g5_sending WHERE sending_idx in ('1') and  `wr_id` = $write[wr_id] order by wr_datetime  ");
for($i=0;$row = sql_fetch_array($result);$i++){
$list[] = $row;
}

?>

이상태에서는 sending_idx에 1값이 있는 데이터 잘 출력되는데요

이걸

 

<?php

$list = array();
$sending_idx = $_POST['sending_idx'];
$result = sql_query("SELECT wr_name, wr_id, g5_sending WHERE sending_idx in ('{$sending_idx}') and  `wr_id` = $write[wr_id] order by wr_datetime  ");
for($i=0;$row = sql_fetch_array($result);$i++){
$list[] = $row;
}

?>

이렇게 변수로 해보려하니 안되네요..도움기다려봅니다..그누어린이가 뭘하려니 아주 어려버요,,흑흑

버튼 누르는 값에 따라 3, 7, 6 등 ajax로 잘 가는지 console에는 잘 표시됩니다.

 

말하자면 버튼1~10중 해당버튼 누를때 모달창에는 sending_idx in ('해당숫자')

가 있는 데이터만 뿌려주고 싶다는 것입니다.

이 질문에 댓글 쓰기 :

답변 1

$sending_idx = $_POST['sending_idx'];
$result = sql_query("SELECT wr_name, wr_id, g5_sending WHERE sending_idx in ('{$sending_idx}') and  `wr_id` = $write[wr_id] order by wr_datetime  ");

 

두문장만 보고 이야기를 드리면

 

문제가 있어보입니다.

$_POST['sending_idx'];

여기에 넘어가는값이 

숫자 1개면 상관이 없지만

 

멀티의 값 3,7,6 과 같이 , 가 포함된 값이라면

위의 내용은 작동하지 않습니다.

 

왜냐면

 

WHERE sending_idx in ('{$sending_idx}') 

 

의 구조라서 그렇습니다. 3,7,6 일때

 위 문장을 DB에서 적용되는 코드는

 

WHERE sending_idx in ('3,7,6') 으로 인식됩니다.

'3,7,6' 의 값은 , 와 무관하게

문자열이 됩니다

 

즉, 3,7,6의 값을 갖는 문자열이라는 의미이고

 

sending_idx에 ,를 포함한 값이 없다면 절대 나올수 없어보입니다.

 

sending_idx가 int값을 갖는다면

더더욱 오류입니다.

 

따라서 (db 컬럼의 유형을 알수없기에 추측이지만)

WHERE sending_idx in ('{$sending_idx}') 

WHERE sending_idx in ({$sending_idx})

가 되어야 정상작동하지 않을까 생각됩니다.

 

물론, 넘겨주는값이 3,7,6 이라는 구조의 멀티값이나 3 과 같은 숫자이고 sending_idx가 int값과 같은 구조일때를 적용해보세요 

 

 

감사합니다.

<script>

$(document).on("click", ".create-user", function () {

 
        var wr_id = $('#wr_id_<?php echo $write['wr_id'] ?>').val();
        var bo_table = $('#bo_table_<?php echo $write['bo_table'] ?>').val();
        var sending_idx = $('#sending_idx_<?php echo $write['wr_id'] ?>').val();

  $.ajax({
    url: "<?php echo $board_skin_url?>/modal/sending_history.php",


            type: "POST",
            data: {
                "wr_id": wr_id,
                "bo_table": bo_table,
                "sending_idx": sending_idx

},

            dataType: "text",
            async: false,
            cache: false,
      success: function(data, textStatus) {
console.log(sending_idx);

        $( "#sending_history" ).load("<?php echo $board_skin_url?>/modal/sending_history.php");

          }
    });
  }); 
</script>
ajax는 이상없는거 같은데요.


아래에 디비값이 안나오고 표 제목만 나올까요?
그래서 이 php를 주소창에서 바로 실행해도 안나오네요..흑흑
변수로 안하고 원래코드로
WHERE sending_idx in (1) 이렇게 해도 안나오고요

<?php
@include_once('../../../../common.php');
?>

<?php

$list = array();
$sending_idx = $_REQUEST['sending_idx'] ;
$result = sql_query("SELECT wr_name, wr_id  from g5_re_sending WHERE sending_idx in ({$sending_idx}) and  `wr_id` = $write[wr_id] order by wr_datetime  ");
for($i=0;$row = sql_fetch_array($result);$i++){
$list[] = $row;
}

?>

  <table id="users" class="ui-widget ui-widget-content">
    <thead>
      <tr class="ui-widget-header ">
        <th>이름</th>
        <th>wr_id</th>
        <th>수정</th>

      </tr>
    </thead>
    <tbody>
  <?php

  for ($i=0; $i<count($list); $i++) {
  ?>
  <tr>
    <td class="tg-0lax"><?php echo $list[$i][wr_name]?></td>
    <td class="tg-0lax"><?php echo $list[$i]['sending_idx'] ?></td>

    <td class="tg-0lax"><a  class="btn btn2" onclick="update_<?php echo $write['wr_id'] ?>();">수정</a> </td>

  </tr>

  <?php } ?>

올리신 소스가 구분이 어렵네요

자세히 판단은 잘 안되지만

ajax 의 구동방식을 잘 이해하고 진행하신게 맞는지 여쭤보고싶어집니다.

가장 간단한 샘플은

게시글쓰기의
id중복체크 하는 로직을 참고하셔서

실제 ajax.처리파일.php 로 이름되는 파일과
그것을 호출하는 파일과의 관계
실제 처리파일내의 결과값들을 잘 살펴보시는게 우선이 아닐까 생각됩니다.

아래 내용을 재구성해드릴수는 없을것 같네요

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

회원로그인

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