리스트에서 여분필드 수정되면 메일 발송되도록 처리하고 싶은데 잘 안되네요.

리스트에서 여분필드 수정되면 메일 발송되도록 처리하고 싶은데 잘 안되네요.

QA

리스트에서 여분필드 수정되면 메일 발송되도록 처리하고 싶은데 잘 안되네요.

답변 3

본문

리스트에서 여분필드 수정되면 메일 발송되도록 처리하고 싶은데

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; 등의 이런 변수지정한거에 값이 들어가야할텐데 지금 소스로는 변수값들이 없을거 같아요
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 61,339
© SIRSOFT
현재 페이지 제일 처음으로