리스트에서 여분필드 수정되면 메일 발송되도록 처리하고 싶은데 잘 안되네요.
리스트에서 여분필드 수정되면 메일 발송되도록 처리하고 싶은데
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개 / 댓글 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는 기본적으로 작동이 된다는 뜻이니까..
차근차근, 각 변수에 문제가 없는지 체크해보시면 해결이 되지 않을까 싶어요!
화이팅 하시구요..^^
답변에 대한 댓글 1개
g5_bo_table, 이게 잘못지정된거 같아요 변수명에 '<?=$bo_table?>' 이렇게 들어가야될거 같구요 // 심사완료시 작성자에게 메일 이 아래쪽도 $wr_email; 등의 이런 변수지정한거에 값이 들어가야할텐데 지금 소스로는 변수값들이 없을거 같아요
답변에 대한 댓글 1개
ajax로 하면 오류찾기도 쉽지않을거 같고요 그냥 팝업처리로 하심 어떨런지
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.
변수체크를 꼼꼼히 봐야 겠습니다.