다시 한번 질문 드려볼께요...
본문
게시판 리스트에서 수정이라기보단 input type='button' 또는 <a>태크를 통해 클릭시
게시판 DB TABLE 여분 필드에 추가적으로 업데이트 시키고 싶습니다.
현재 여분 필드는 wr_30까지 있구요...
예를 들어, "시작"이라는 링크or버튼 클릭시 wr_25에는 시작이라는 text와
wr_26에는 현재 년월일시간초까지 저장하고,
"종료"라는 링크 or 버튼 클릭시 wr_25에는 종료라는 text와
wr_27에는 현재 년월일 시간 초까지
bbs에 apply.php라는 파일의 sql_query(update~~~)를 통해 DB에 업데이트하려는게 목적이거든요
그런데 list.skin.php가 for문으로 돌려서 $list[$i]['~~~']식으로 되어있다보니깐...ajax이든 javascript이든
소스를 짜봐도 잘 안되네요
그래서 참고하실 수 있도록 리스트 페이지와 bbs/apply.php 내용을 올려보겠습니다.ㅠㅠ 도와주세요..
이러다간 2주가 흘러가고 압박은 들어오고 죽겠습니다.ㅠㅠ
---- list.skin.php ----
<td>
<script type='text/javascript'>
$(document).ready(function() {
//거래처 등록
$(document).on("click","span.cam_start",function(){
var bo_table = '<?php echo $bo_table?>';
var sca = '<?php echo $sca?>';
var wr_id = $(this).attr('id');
var wr_1 = $(this).attr('id');
var wr_2 = $(this).attr('id');
var wr_4 = $(this).attr('id');
var wr_subject = $(this).attr('id');
alert(wr_id);
if(g5_is_member == false) {
alert("권한이 없습니다!");
return false;
}
$.ajax({
type: "POST",
url: "./apply.skin.php?action=cam_update",
data: 'bo_table='+bo_table+'&wr_id='+wr_id+'&wr_1='+wr_id+'&wr_2='+wr_2+'&wr_4='+wr_4+'&wr_subject='+wr_subject+'&sca='+sca,
dataType: "json",
//cache: false,
async: false,
success: function() {
document.location.reload();
}
});
});
);
/*
function cam_start(ad) {
var bo_table = '<?=$bo_table?>';
var sca = '<?=$sca?>';
var ad = new array[];
for(i=0; i<ad.length; i++) {
var wr_id = wr_id.ad.value[i];
var wr_1 = wr_1.ad.value[i];
var wr_2 = wr_2.ad.value[i];
var wr_4 = wr_4.ad.value[i];
var wr_subject = wr_subject.ad.value[i];
}
f.action = './apply.php?bo_table='+bo_table+'&wr_id='+wr_id+'&wr_1='+wr_1+'&wr_2='+wr_2+'&wr_4='+wr_4+'&wr_subject='+wr_subject+'&sca='+sca;
f.submit();
}
*/
</script>
<span class="btn s" id="cam_start">시작</span> <input type='button' class="btn " name="end" value='종료' onClick='cam_end()'>
</td>
---- bbs/apply.php ----
주석은 자바스크립트로 받아보려고 한겁니다.
<?php
include_once('./_common.php');
switch($_GET['action'])
{
case 'cam_update':cam_update(); break;
//case 'ac_add':ac_addEvent(); break;
//case 'ac_del':ac_delEvent(); break;
}
function cam_update()
{
global $g5;
$bo_table = $_POST['bo_table'];
$subject = $_POST['wr_subject'];
$wr_id = $_POST['wr_id'];
$wr_1 = $_POST['wr_1'];
$wr_2 = $_POST['wr_2'];
$wr_4 = $_POST['wr_4'];
$sca = $_POST['sca'];
$wr_25 = "시작";
$wr_26 = date("Y-m-d H:i:s");
//sql_query(" update $g5[board_table] set $wr_25 = '$wr_25', $wr_26 = '$wr_26' where bo_table = '$bo_table' ");
echo json_encode(array('success'=>true));;
}
/*
$subject = $_POST['wr_subject'];
$wr_id = $_POST['wr_id'];
$wr_1 = $_POST['wr_1'];
$wr_2 = $_POST['wr_2'];
$wr_4 = $_POST['wr_4'];
$sca = $_POST['sca'];
/*
$row2 = sql_fetch(" select * from {$write_table} where wr_subject = '{$subject}' ");
sql_query($row2);
if($subject == $row2['subject'] && $wr_2 == $row['wr_2']) {
$wr_25 = "작업시작";
$wr_26 = date("Y-m-d H:i:s");
}
$sql = " update {$write_table}
set wr_25 = '$wr_25',
wr_26 = '{$wr_26}'
where wr_1='$wr_1' and wr_2='$wr_2' and sca='$sca' ";
sql_query($sql);
*/
alert($wr_id."/".$wr_1."/".$wr_2."/".$wr_4."/".$subject."/".$sca);
//goto_url('./board.php?bo_table='.$bo_table.'&sca='.$sca);
?>
답변 3
ajax 클릭 처리 부분을 이런식으로 바꿔서 각 변수를 불러와야 하지 않을까 싶은데요????
html 부분
<input name="" type="text" onclick="cmaUpdate('<?php echo $list[$i]['wr_1']?>','<?php echo $list[$i]['wr_2']?>','<?php echo $list[$i]['wr_3']?>')" >
jquery 부분
var cmaUpdate = function(wr_num,wr_id,wr_1,wr_2,wr_3){ //이곳에 필요한 변수들을 전부 불러옵니다
$.ajax({
type:"post",
url:"./apply.skin.php",
data:
{ //상단에 입력된 값을 대입
action : 'cam_update',
bo_table : g4_bo_table,
wr_num : wr_num,
wr_id : wr_id,
wr_1 : wr_1,
wr_2 : wr_2
},
dataType:"html",
success:function(res){
if(res == 1)
alert("저장");
else
alert("실패");
}
});
}
php 부분
마지막 저장이후 카운트를 센다음 숫자가 존재한다면 echo(1) 그렇지 않다면 빈값을 넘겨주면 됩니다
일반적으로 월별 출석부에서 많이 볼 수 있는 패턴입니다.
저도 월별 출석을 한페이지에서 처리할 때 사용하고 있어서;;
일단 해당 기능은 <div id="1234"><a ~~ 또는 버튼> </div> 형태로 하셔서
클릭이 일어날때 jquery에서 해당 id값을 찾아서 서버측에 ajax로 넘겨주면 됩니다.
그냥 현재 작업 중이신 게시판 리스트를 보여 주시는 게 더 낫지 않을까요?
정 작업 중이신 페이지를 공개하기 힘드시면 게시판 리스트 부분만 소스 보기로 해서 보여 주시는 게 좋을 것 같습니다.
html, css, js의 경우는 페이지 로딩이 완전히 일어난 상태에서 보는 게 가장 정확합니다.