ajax 궁금한게 있습니다.

ajax 궁금한게 있습니다.

QA

ajax 궁금한게 있습니다.

본문

게시글에서 구찬아님의 스킨보니 ajax로 wr_1을 변경하는건데


            <li onclick="updo_wr_1('<?=$view['wr_id']?>','-1','<?=$bo_table?>')">기각</li>
            <li onclick="updo_wr_1('<?=$view['wr_id']?>','1','<?=$bo_table?>')">채택</li>


<script>
        function updo_wr_1(wr_id,wr_1,bo_table) {

        //alert(wr_1);

        $.ajax({
            url: g5_bbs_url+"/ajax.updo_wr_1.php",
            type: "POST",
            data: {
                "bo_table" :bo_table,
                "wr_id": wr_id,
                "wr_1": wr_1
            },
            dataType: "json",
            async: false,
            cache: false,
            success: function(data, textStatus) {
             window.location.reload();

            }
        });


}

</script>

 

 

<?php
include_once('./_common.php');


$bo_table     = trim($_REQUEST['bo_table']);
$wr_id = trim($_REQUEST['wr_id']);
$wr_1 = trim($_REQUEST['wr_1']);


//기각 -1
//채택 1
$sql="UPDATE  `g5_write_".$bo_table."` SET  
   `wr_1` =  '".$wr_1."' 
  
    WHERE  `wr_id` =".$wr_id.";";
    $row = sql_fetch($sql);

?>

 

잘됩니다.. 그런데 궁금한게...

인풋이 여러개라

 

예제코드처럼 버튼으로 하지 않고

 

 

 

<input type=text id="<?php echo $list[$i]['wr_1']; ?>" name='wr_1' value="<?=$list[$i]['wr_1']?>" >

<input type=text id="<?php echo $list[$i]['wr_2']; ?>" name='wr_2' value="<?=$list[$i]['wr_2']?>" >

<input type=text id="<?php echo $list[$i]['wr_3']; ?>" name='wr_3' value="<?=$list[$i]['wr_3']?>" >

 

하단에 

확인버튼 한개만 두고 하려는데..어떻게 해야 하는지 궁금합니다.

이 질문에 댓글 쓰기 :

답변 3

* list 페이지용


<input type="text" name="<?=$list[$i]['wr_id']?>_wr_1" value="<?=$list[$i]['wr_1']?>" >
<input type="text" name="<?=$list[$i]['wr_id']?>_wr_2" value="<?=$list[$i]['wr_2']?>" >
<input type="text" name="<?=$list[$i]['wr_id']?>_wr_3" value="<?=$list[$i]['wr_3']?>" >
<button type="button" onclick="update_wr_1_2_3('<?=$list[$i]['wr_id']?>', '<?=$list[$i]['wr_1']?>', '<?=$list[$i]['wr_2']?>', '<?=$list[$i]['wr_3']?>')">저장</button>

 


<script>
function update_wr_1_2_3(wr_id, wr_1, wr_2, wr_3) {
    var bo_table = '<?php echo $bo_table ?>';            
 
    $.ajax({
        url: g5_bbs_url + "/update_wr_1_2_3.php",
        type: "POST",
        data: {
        "bo_table": bo_table,
        "wr_id": wr_id,
        "wr_1": wr_1,
        "wr_2": wr_2,
        "wr_3": wr_3
        },
        success: function(data) {
            if (data == 'ok')
                window.location.reload();
            else
                alert('오류가 발생하였습니다.');
        }
    });
}
</script>

 

update_wr_1_2_3.php

<?php
include_once('./_common.php');
$write_table = 'g5_write_' . $bo_table;
$sql = "
  UPDATE {$write_table}
     SET wr_1 = '{$wr_1}',
         wr_2 = '{$wr_2}',
         wr_3 = '{$wr_3}'
   WHERE wr_id = '{$wr_id}'
";
 
$result = sql_query($sql);
 
if ($result)
    echo "ok";
?>

시간내주셔서 거듭 감사합니다. 일단 리스트에서 해보고 있는데
코드 그대로 넣었는데
Uncaught SyntaxError: Invalid or unexpected token 에러 뜨구요
주소창에 파라미터로 실행하니 업데이트 됩니다.
update_wr_1_2_3.php?bo_table=free&wr_id=10&wr_1=aa&wr_2=bb&wr_3=cc

인풋이나 스크립트에 뭔가 이상이 있는거 같습니다.

<button type="button" onclick="update_wr_1_2_3('<?=$list[$i]['wr_id']?>', '<?=$list[$i]['wr_1']?>', '<?=$list[$i]['wr_2']?>', '<?=$list[$i]['wr_3']?>')">저장</button>

부분을 소스보기 또는 검사 했을 때..
update_wr_1_2_3 ('10', 'aa', 'bb', 'cc') 형태와 같은 문자열(따옴표로 묶인) 파라미터가 들어가야 되는데.. 그부분을 확인해 보셨으면 합니다.


<input type="text" id="wr_1" name="wr_1" value="<?=$list[$i]['wr_1']?>" >
<input type="text" id="wr_1" name="wr_2" value="<?=$list[$i]['wr_2']?>" >
<input type="text" id="wr_1" name="wr_3" value="<?=$list[$i]['wr_3']?>" >

 


<script>
function update_wr_1_2_3() {
    var bo_table = '<?php echo $bo_table ?>';
    var wr_id = '<?php echo $wr_id ?>';
    
    var wr_1 = $('input[name=wr_1]').val();
    var wr_2 = $('input[name=wr_2]').val();
    var wr_3 = $('input[name=wr_3]').val();
 
    $.ajax({
        url: g5_bbs_url + "/update_wr_1_2_3.php",
        type: "POST",
        data: {
        "bo_table": bo_table,
        "wr_id": wr_id,
        "wr_1": wr_1,
        "wr_2": wr_2,
        "wr_3": wr_3
        },
        success: function(data) {
            if (data == 'ok')
                window.location.reload();
            else
                alert('오류가 발생하였습니다.');
        }
    });
}
</script>


update_wr_1_2_3.php


<?php
include_once('./_common.php');
 
$sql = "
    UPDATE g5_write_{$bo_table}
         SET wr_1 = '{$wr_1}',
              wr_2 = '{$wr_2}',
              wr_3 = '{$wr_3}'
   WHERE wr_id = '{$wr_id}'
";
 
$result = sql_query($sql);
 
if ($result)
    echo "ok";
?>

* View 페이지용


<input type="text" id="wr_1" name="wr_1" value="<?=$view['wr_1']?>" >
<input type="text" id="wr_1" name="wr_2" value="<?=$view['wr_2']?>" >
<input type="text" id="wr_1" name="wr_3" value="<?=$view['wr_3']?>" >

 


<script>
function update_wr_1_2_3() {
    var bo_table = '<?php echo $bo_table ?>';
    var wr_id = '<?php echo $wr_id ?>';
    
    var wr_1 = $('input[name=wr_1]').val();
    var wr_2 = $('input[name=wr_2]').val();
    var wr_3 = $('input[name=wr_3]').val();
 
    $.ajax({
        url: g5_bbs_url + "/update_wr_1_2_3.php",
        type: "POST",
        data: {
        "bo_table": bo_table,
        "wr_id": wr_id,
        "wr_1": wr_1,
        "wr_2": wr_2,
        "wr_3": wr_3
        },
        success: function(data) {
            if (data == 'ok')
                window.location.reload();
            else
                alert('오류가 발생하였습니다.');
        }
    });
}
</script>

 

update_wr_1_2_3.php

<?php
include_once('./_common.php');
$write_table = 'g5_write_' . $bo_table;
$sql = "
  UPDATE {$write_table}
     SET wr_1 = '{$wr_1}',
         wr_2 = '{$wr_2}',
         wr_3 = '{$wr_3}'
   WHERE wr_id = '{$wr_id}'
";
 
$result = sql_query($sql);
 
if ($result)
    echo "ok";
?>

 

에러가 난다면.. 같은 디렉토리에 _common.php 파일이 있는지, _common.php 파일 내용에 / 의 common.php 파일을 include 하고 있는지 확인해 보셨으면 합니다.

 

계속 에러가 난다면,

브라우저에서 직접 ~/update_wr_1_2_3.php?bo_table=free&wr_id=10&wr_1=aa&wr_2=bb&wr_3=cc 식으로 입력/이동하여 에러 확인/수정 작업을 해볼 수 있습니다.

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

회원로그인

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