리스트에서 여분필드 수정되면 메일 발송되도록 처리하고 싶은데 잘 안되네요. 채택완료
리스트에서 여분필드 수정되면 메일 발송되도록 처리하고 싶은데
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개
안녕하세요..^^
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개
메일쪽이 문제네요 ~
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
변수체크를 꼼꼼히 봐야 겠습니다.