ajax로 동기식을 쓰고 있는거 같은데...조언좀 부탁드립니다.
본문
완전 쌩 초짜입니다.
스크랩형식을 가져와서
게시판 즐겨찾기를 만들려고 하고있어요
현재 폼을 이용해서
sumit으로 데이터를 전송하고 있는데요.
구글링하다보니 서밋을 사용해서 폼을 날리는건 그냥 동기식이라는 글을봤어요.
폼으로 날리는게 그나마 제가 이해가 가능한 부분이라서..그렇게 했는데..
폼을 이용해서 ajax를 비동기식으로 처리가 가능하려면
어떤식으로 처리해야할지 조언이 좀 필요한거 같아요.
혹은 폼이 아닌 그냥 비동기식으로 가져가려면 뭐뭐를 새롭게 작성해야할지 잘 몰라서
조언좀 부탁드립니다.
ps. 혹시 데이터를 전송하는거 말고, 삭제를 하려면, remove라는걸 써야할까요?
<!----------------폼------------>
<form name="favoriteInfo" action="<?php echo G5_BBS_URL?>/favoite_add.php" method="post">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="mb_id" value="<?php echo $mb_id ?>">
</form>
<!----------------폼끝------------>
<!----------------버튼------------>
<?php if ($favorite_href) { ?>
<a href="javascript:;" onclick="favorite_submit()" class="btn btn-black">추가하기</a>
<?php } ?>
<!----------------버튼끝------------>
<!----------------스크립------------>
<script type="text/javascript">
function favorite_submit() {
var form = $("form[name=favoriteInfo").serialize();
$.ajax({
url: g5_bbs_url+"/favoite_add.php",
type: "POST",
cache: "false",
data: form,
success: function(data) {
alert("<?php echo "{$board['bo_subject']}" ?> 을 추가하였습니다");
},
error: function() {
alert("실패");
}
});
}
</script>
답변 2
favoite_add.php 의 코드는 어찌 되는지요?
데이터를 삭제하려면 input value 를 진공으로 해 주고 submit 시키면 됩니다만...
그리고 너무 아작스에 집착하지 않으셔도 됩니다.
적정한 시점에서 새로고침 해 주는 로직을 넣을 줄 알면 특별한 상황이 아니라면 그게 그거거든요.
미디어나 유튜브의 재생시점을 신경 써야할 때라거나 등등 특별히 실시간이 필요하지 않으면요.
가장 소박한 것은
<form id="favoriteInfo" name="favoriteInfo" action="add.php" method="post">
<input type="hidden" ib="bo_table" name="bo_table" value="어쩌구">
<input type="hidden" id="mb_id" name="mb_id" value="저쩌구">
<button type="submit">클릭</button>
</form>
위와 같이 로직을 짰다면 add.php 에서는
$_POST['bo_table']
$_POST['mb_id'] 으로 받아 로직을 구성하고
add.php 의 가장 마지막 줄에 새로고침 후 이전페이지로 가는 코드를 주면 가장 쉬울 것 같은데요.
<script>location.href = document.referrer;</script>
----
그리고 폼 바깥에 버튼을 하나 만들고
아래 코드를 주면 데이터가 진공으로 날아가구요.
폼을 만들 때는 id 를 꼭 주세요. 그래야 자바스크립트 핸들링이 무진장 쉬워집니다.
자바스크립트는 name 이 아니라 id 나 class 로 변차를 주거든요.
<button type=button onclick="bo_table.value=mb_id.value='';favoriteInfo.submit()">클릭</button>