테스트 사이트 - 개발 중인 베타 버전입니다

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

opman 2년 전 조회 1,902

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

ajax로 값은 수정이 되는데 메일 발송은 어떻게 해야 할지 모르겠네요.

list_up.php 페이지에서 실행이 가능한건지...

검색해서 이래저래 해보는데 초보라 잘 안되네요. TT

코드수정 부탁드립니다.

 

</strong>

<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"></p>

<p>                      <option value="" >확인중</option></p>

<p>                      <option value="심사중" <? if($list[$i]['wr_12'] == '심사중') echo " selected "; ?>>심사중</option></p>

<p>                      <option value="심사완료" <? if($list[$i]['wr_12'] == '심사완료') echo " selected "; ?>>심사완료</option></p>

<p>                      <option value="대관취소" <? if($list[$i]['wr_12'] == '취소') echo " selected "; ?>>대관취소</option></p>

<p> </p>

<p>  </select></p>

<p><b> </b></p>

<p><script></p>

<p> var wr12_chk = function(wr_num,wr_id,field) {</p>

<p>    $.ajax({</p>

<p>        type:"post",</p>

<p>        url:"<?php echo $board_skin_url;?>/list_up.php",</p>

<p>        data:</p>

<p>        {</p>

<p>            bo_table : g5_bo_table,</p>

<p>            wr_num : wr_num,</p>

<p>            wr_id : wr_id,</p>

<p>            wr_12 : field</p>

<p>        },</p>

<p>        dataType:"html",</p>

<p>        success:function(res){</p>

<p>            $("#wr_12_"+wr_num).val(res);</p>

<p>            if(res)</p>

<p>                alert(res+"(으)로 변경되었습니다");</p>

<p>            else</p>

<p>                alert("변경 실패");</p>

<p>        }</p>

<p>    });</p>

<p>}</p>

<p></script></p>

<p><strong>

 

 

 

list_up.php

 

</strong></p>

<p><?php</p>

<p>include_once("./_common.php");</p>

<p>include_once(G5_LIB_PATH.'/mailer.lib.php');</p>

<p> </p>

<p>$write_table = $g5['write_prefix'].$_POST['bo_table'];</p>

<p>$sql = " update ".$write_table." set wr_12 = '".$_POST['wr_12']."' where wr_id = '".$_POST['wr_id']."' ";</p>

<p>sql_query($sql);</p>

<p>$sql = "select wr_12 from ".$write_table." where wr_id = '".$_POST['wr_id']."' ";</p>

<p>$row = sql_fetch($sql);</p>

<p> </p>

<p>if($row['wr_12'])</p>

<p>  echo $row['wr_12'];</p>

<p>else</p>

<p> echo '';</p>

<p> </p>

<p>// 심사완료시 작성자에게 메일 </p>

<p>if($_POST['wr_12']=="심사완료"){  // 심사완료 상태일때만 실행</p>

<p>   $wr_email = $super_admin[mb_email];</p>

<p>    $site_name = “사이트명”; //사이트이름 </p>

<p>    $site_email = $wr_email; //사용자가 입력한 이메일주소</p>

<p>    //보내는정보</p>

<p>    $recv_name = $site_name; //회신이름 </p>

<p>    $recv_mail = $site_email; //회신메일주소 </p>

<p>    //받는사람정보</p>

<p>    $subject  =  심사가 완료되었습니다.";  //메일제목 </p>

<p>    $send_mail =  "$wr_email"; //받는사람메일 </p>

<p>    ob_start();</p>

<p>    if($write['wr_subject']) echo $write['wr_subject'];</p>

<p>    if($write['wr_content']) echo $write['wr_content'];</p>

<p>    $content = ob_get_contents();</p>

<p>    ob_end_clean();</p>

<p>    mailer($recv_name, $recv_mail, $send_mail,  $wr_subject, $wr_content, 1);</p>

<p> };</p>

<p>?></p>

<p><strong>

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
제리v
2년 전

안녕하세요..^^
 
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개

o
opman
2년 전
넵 감사합니다. 임의로 넣으니 메일은 잘 오네요.
변수체크를 꼼꼼히 봐야 겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

g5_bo_table, 이게 잘못지정된거 같아요
변수명에 '<?=$bo_table?>' 이렇게 들어가야될거 같구요

// 심사완료시 작성자에게 메일
이 아래쪽도 

$wr_email; 등의 이런 변수지정한거에 값이 들어가야할텐데 지금 소스로는 변수값들이 없을거 같아요
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

o
opman
2년 전
g5_bo_table 지정한건 확인결과 이상없이 잘 되는데
메일쪽이 문제네요 ~

댓글을 작성하려면 로그인이 필요합니다.

ajax로 하면 오류찾기도 쉽지않을거 같고요 그냥 팝업처리로 하심 어떨런지

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

o
opman
2년 전
감사합니다. 속 편하게 그렇게 해 볼까 합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인