
구현하려는 인터페이스는 대략 보시는 바와 같습니다.
하트 버튼을 누르면 관심상품으로 등록이 되고,
재차 누르면 해제되는 식으로 만들고 싶습니다.
리다이렉션을 처리할 페이지는 따로 만들어 놓기는 했는데..
허접한 제가 봐도 이 기능은 ajax로 호출하는 식으로 구현해야 할 거 같아 도저히 감이 안잡히네요.
회원님들이라면 어떤 방식으로 기능을 만드실 것 같나요?
저는 우선 veiw.skin.php에 있는 스크랩 기능을 활용해볼까.. 고민중입니다.
저것만 구현하면 웹앱의 기능부는 사실상 완성되는 셈인데..
마지막 관문이 너무 어렵네요 ㅠㅠㅠㅠ
|
답변 2개 / 댓글 2개
채택된 답변
+20 포인트
마르스컴퍼니
2022-12-28 (수) 17:10:45
Copy
<button type="button" class="btn_wish" data-it_id="{$row['it_id']}"><span class="sound_only">위시리스트</span><i class="fa fa-heart-o" aria-hidden="true"></i></button>
Copy
<script>
$(".btn_wish").on("click", function() {
var it_id = $(this).data("it_id");
if(!it_id) {
alert("상품코드가 올바르지 않습니다.");
return false;
}
$.post(
"./ajax.wish_update.php",
{ it_id: it_id },
context : this,
function(error) {
if(error != "OK") {
alert(error.replace(/\\n/g, "\n"));
return false;
}
alert("상품을 위시리스트에 담았습니다.");
$(this).find('.fa').removeClass('fa-heart-o').addClass('fa-heart');
return;
}
);
});
</script>
Copy
$it_id = isset($_POST['it_id']) ? safe_replace_regex($_POST['it_id'], 'it_id') : '';
if (!$is_member)
die('회원 전용 서비스 입니다.');
if(!$it_id)
die('상품 코드가 올바르지 않습니다.');
// 상품정보 체크
$row = get_shop_item($it_id, true);
if(!$row['it_id'])
die('상품정보가 존재하지 않습니다.');
$sql = " select wi_id from {$g5['g5_shop_wish_table']}
where mb_id = '{$member['mb_id']}' and it_id = '$it_id' ";
$row = sql_fetch($sql);
if (! (isset($row['wi_id']) && $row['wi_id'])) {
$sql = " insert {$g5['g5_shop_wish_table']}
set mb_id = '{$member['mb_id']}',
it_id = '$it_id',
wi_time = '".G5_TIME_YMDHIS."',
wi_ip = '".$_SERVER['REMOTE_ADDR']."' ";
sql_query($sql);
die('OK');
} else {
die('위시리스트에 이미 등록된 상품입니다.');
}
답변에 대한 댓글 1개
2022-12-28 (수) 15:41:28
ajax로 처리하는 게 제일 무난합니다.
view.php의 좋아요 기능을 확인해 보세요.
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.