리스트에서 여분필드 수정되면 메일 발송되도록 처리하고 싶은데 잘 안되네요.
본문
리스트에서 여분필드 수정되면 메일 발송되도록 처리하고 싶은데
ajax로 값은 수정이 되는데 메일 발송은 어떻게 해야 할지 모르겠네요.
list_up.php 페이지에서 실행이 가능한건지...
검색해서 이래저래 해보는데 초보라 잘 안되네요. TT
코드수정 부탁드립니다.
<select name="wr_12" id="wr_12_<?php echo $i;?>" onchange="wr12_chk('<?php echo $i;?>','<?php echo $list[$i]['wr_id'];?>',this.value);" class="form-control form-select-sm text-center g-font-weight-700 g-pl-5 g-pr-5">
<option value="" >확인중</option>
<option value="심사중" <? if($list[$i]['wr_12'] == '심사중') echo " selected "; ?>>심사중</option>
<option value="심사완료" <? if($list[$i]['wr_12'] == '심사완료') echo " selected "; ?>>심사완료</option>
<option value="대관취소" <? if($list[$i]['wr_12'] == '취소') echo " selected "; ?>>대관취소</option>
</select>
<script>
var wr12_chk = function(wr_num,wr_id,field) {
$.ajax({
type:"post",
url:"<?php echo $board_skin_url;?>/list_up.php",
data:
{
bo_table : g5_bo_table,
wr_num : wr_num,
wr_id : wr_id,
wr_12 : field
},
dataType:"html",
success:function(res){
$("#wr_12_"+wr_num).val(res);
if(res)
alert(res+"(으)로 변경되었습니다");
else
alert("변경 실패");
}
});
}
</script>
list_up.php
<?php
include_once("./_common.php");
include_once(G5_LIB_PATH.'/mailer.lib.php');
$write_table = $g5['write_prefix'].$_POST['bo_table'];
$sql = " update ".$write_table." set wr_12 = '".$_POST['wr_12']."' where wr_id = '".$_POST['wr_id']."' ";
sql_query($sql);
$sql = "select wr_12 from ".$write_table." where wr_id = '".$_POST['wr_id']."' ";
$row = sql_fetch($sql);
if($row['wr_12'])
echo $row['wr_12'];
else
echo '';
// 심사완료시 작성자에게 메일
if($_POST['wr_12']=="심사완료"){ // 심사완료 상태일때만 실행
$wr_email = $super_admin[mb_email];
$site_name = “사이트명”; //사이트이름
$site_email = $wr_email; //사용자가 입력한 이메일주소
//보내는정보
$recv_name = $site_name; //회신이름
$recv_mail = $site_email; //회신메일주소
//받는사람정보
$subject = 심사가 완료되었습니다."; //메일제목
$send_mail = "$wr_email"; //받는사람메일
ob_start();
if($write['wr_subject']) echo $write['wr_subject'];
if($write['wr_content']) echo $write['wr_content'];
$content = ob_get_contents();
ob_end_clean();
mailer($recv_name, $recv_mail, $send_mail, $wr_subject, $wr_content, 1);
};
?>
답변 3
안녕하세요..^^
list_up.php 파일은 별도로 만드신거겠죠?
$site_email = $wr_email; //사용자가 입력한 이메일주소
if($write['wr_subject']) echo $write['wr_subject'];
if($write['wr_content']) echo $write['wr_content'];
위 3줄에서
$wr_email
$write['wr_content']
$write['wr_subject']
3개의 변수의 값은 안찍힐것 같아요.
(가물가물한데.. 위 $write 변수는 bbs/write.php 파일이였나? 거기서 정의해주는걸로 알고 있거든요.)
해결방법은,
$sql = "select wr_12 from ".$write_table." where wr_id = '".$_POST['wr_id']."' ";
이 소스에서,
sql = "select * from ".$write_table." where wr_id = '".$_POST['wr_id']."' ";
이렇게 수정하셔서, 데이터를 가져오시고,
(ajax쓰실 정도면, 쿼리를 기본적으로 컨트롤 할 수 있을것 같아 중간에는 생략해요.)
$wr_email = $row['wr_email'];
$write['wr_content'] = $row['wr_content'];
$write['wr_subject'] = $row['wr_subject'];
이런식으로? 수정을 하셔야 되지 않을까 해요.
혹여 그럼에도 메일이 안된다면,
mailer(~~~)에 각각 대응하는 변수가 제대로 찍히는지 체크해보시면 될것 같아요!
ps1) 스팸메일 필수로 확인할 것
ps2) 관리자에서 메일 테스트 해볼 것 (서버쪽 문제일수도 있음)
말씀하신 내용을 보면, wr_12에 데이터 값이 저장이 되었다면, ajax는 기본적으로 작동이 된다는 뜻이니까..
차근차근, 각 변수에 문제가 없는지 체크해보시면 해결이 되지 않을까 싶어요!
화이팅 하시구요..^^
ajax로 하면 오류찾기도 쉽지않을거 같고요 그냥 팝업처리로 하심 어떨런지
g5_bo_table, 이게 잘못지정된거 같아요 변수명에 '<?=$bo_table?>' 이렇게 들어가야될거 같구요 // 심사완료시 작성자에게 메일 이 아래쪽도 $wr_email; 등의 이런 변수지정한거에 값이 들어가야할텐데 지금 소스로는 변수값들이 없을거 같아요