form method input type="submit"을 ajax로 해보려고 합니다 질문이 있어요

form method input type="submit"을 ajax로 해보려고 합니다 질문이 있어요

QA

form method input type="submit"을 ajax로 해보려고 합니다 질문이 있어요

본문

신고버튼을 만들고 있어요! 

궤발로 세발로 만드는중입니다 ㅠ.ㅠ

 

쿼리문은 bbs/shingo.php에 다 있는데

( 원본은 그냥 신고 누르면 신고자 아이디와 신고게시물 신고된 아이디 만 나오는 기능 )

신고시 신고사유를 선택 해주려고 했습니다

 

그래서 선택한 방법은 신고 테이블에 ca_name 컬럼을 추가했고

신고가 될때 ca_name값을 input type="submit"으로 제출하면서

이용자는 무엇때문에 신고를 하는것인지 // 관리자는 무엇때문에 신고가 들어오게된건지

알수있게 하려고 했습니다

shingo.php에서는 ca_name에 대한 쿼리문을 손을 봤고요

 

기본적으로 연습으로 만든것은

 


<form method="post"  action="shingo.php">
<input type="hidden" name="bo_table" value="<?=$bo_table?>"/>
<input type="hidden" name="wr_id" value="<?=$wr_id?>"/>
<input type="hidden" name="parent_id" value="<?=$parent_id?>"/>

<div class="dropdown">
<a id="commentmenu-drop" data-toggle="dropdown" aria-expanded="true">
신고
</a>
<ul class="dropdown-menu commetmenu-content" role="menu" aria-labelledby="commentmenu-drop">
<li role="presentation"><input type="submit" name="ca_name" value="성인"></li>
<li role="presentation"><input type="submit" name="ca_name" value="도배"></li>
</ul>
</div>
</form>

 

위에처럼 코드를 진행했고

아래처럼 신고버튼을 누르면 드롭다운형식으로 신고사유를 선택하게끔 했어요

2072820927_1678093647.4754.png

실제 테스트를 진행했고 무난하게 신고가 들어올경우

본문글이 신고가 되었음을 알릴수 있는 상황까지 끝마치게 되었습니다

 

근데 이제 신고가들어갈때  리로드될때  오류 안내페이지로 문구가 나와서

이게 잘못된건가 했는데...결국 알아보니 이게 정상이라고 하더라구요

 

2072820927_1678093963.191.png

 

그래서 페이지 상황에서 리로드 없이 신고가 들어가게 해주려고 합니다

그러면 ajax로 해야한다는데

사실 제가 거의 프로그램 문외한이라 잘몰라요 최대한 이게 맞는지도 잘 모르겠지만

 

<form method="post"  action="shingo.php"> 에다가

id와 name을 추가해줬습니다

id="singoForm" name="singow"

 

그래서 ajax에서 name을 넣어주고

id로는 submit 값이 동작할때 return false;로 submit 동작을 막아서 리로드를 막으려고 해봤어요

 

저는 전혀 모르고..구글링해서 이것저것 고민해보다가 짬뽕으로다가 해봅니다

 


<form method="post" id="singoForm" name="singow" action="shingo.php">
<input type="hidden" name="bo_table" value="<?=$bo_table?>"/>
<input type="hidden" name="wr_id" value="<?=$wr_id?>"/>
<input type="hidden" name="parent_id" value="<?=$parent_id?>"/>

<div class="dropdown">
<a id="commentmenu-drop" data-toggle="dropdown" aria-expanded="true">
신고
</a>
<ul class="dropdown-menu commetmenu-content" role="menu" aria-labelledby="commentmenu-drop">
<li role="presentation"><input type="submit" name="ca_name" value="성인"></li>
<li role="presentation"><input type="submit" name="ca_name" value="광고"></li>
</ul>
</div>
</form>
 
<script type="text/javascript">
    function ajax(){   
        var form = $("form[name=singow]").serialize() ;
 
        $.ajax({
            type : 'post',
            url: g5_bbs_url+"/shingo.php",
            data : form,
            success : function(data){                
            },
            error: function(e){
                alert(error);
            }
        });
  
    }
$('#singoForm').submit(function() { //submit이 발생하면
    $(this).ajaxSubmit(option); //옵션값대로 ajax비동기 동작을 시키고
    return false; //기본 동작인 submit의 동작을 막아 페이지 reload를 막는다.
});
</script>
 

 

그런데 그냥...맨 처음 그냥 input type="submit로 넣는형식으로 진행할때처럼 똑같이 나와요

ajax가 작동을 제대로 못하고 있다는것일까요? 하나마나입장이 되어버렸어요..

 

뭐가 뭔지도 전혀 모르고 주먹구구식으로 이것저것 열어재끼면서 해보다보니

문제점이 뭔지도 전혀 파악을 못하고 있어요

 

ajax를 쓴 코드나 방식이 문제가 있는것일까요?

조언좀 부탁드립니다

 

2072820927_1678094905.405.png

이 질문에 댓글 쓰기 :

답변 1

<input type="submit" name="ca_name" value="성인">

 
얘네를 서브맛 말고 그냥 버튼으로 바꾸시고
$('#singoForm').submit(function() { //submit이 발생하면
    $(this).ajaxSubmit(option); //옵션값대로 ajax비동기 동작을 시키고
    return false; //기본 동작인 submit의 동작을 막아 페이지 reload를 막는다.
});

 
여기에서 ajaxForm이 submit 이벤트가 발생할때 ajax를 호출하고 계신데
그렇게 하지마시고 onClick으로 바꿔보세요
답변을 작성하시기 전에 로그인 해주세요.
전체 150
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT