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']?>" ></p>
<p><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');</p>
<p>$write_table = 'g5_write_' . $bo_table;</p>
<p>$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";
?>
답변에 대한 댓글 3개
부분을 소스보기 또는 검사 했을 때..
update_wr_1_2_3 ('10', 'aa', 'bb', 'cc') 형태와 같은 문자열(따옴표로 묶인) 파라미터가 들어가야 되는데.. 그부분을 확인해 보셨으면 합니다.
시간내주셔서 고맙습니다.
댓글을 작성하려면 로그인이 필요합니다.
* 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');</p>
<p>$write_table = 'g5_write_' . $bo_table;</p>
<p>$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 식으로 입력/이동하여 에러 확인/수정 작업을 해볼 수 있습니다.
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p><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']?>" ></p>
<p>
</p>
<p><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();</p>
<p> </p>
<p> $.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('오류가 발생하였습니다.');
}
});</p>
<p>}
</script></p>
<p>
update_wr_1_2_3.php
<?php
include_once('./_common.php');</p>
<p> </p>
<p>$sql = "
UPDATE g5_write_{$bo_table}
SET wr_1 = '{$wr_1}',
wr_2 = '{$wr_2}',
wr_3 = '{$wr_3}'
WHERE wr_id = '{$wr_id}'
";</p>
<p> </p>
<p>$result = sql_query($sql);</p>
<p> </p>
<p>if ($result)
echo "ok";
?></p>
<p>
답변에 대한 댓글 2개
고맙습니다.
복받으실거에요!
리스트에 적용해서 그런가 하고 뷰페이지에서 해봐도 그렇습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
코드 그대로 넣었는데
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
인풋이나 스크립트에 뭔가 이상이 있는거 같습니다.