고수님들의 조언을 구합니다..!
본문
구현하려는 인터페이스는 대략 보시는 바와 같습니다.
하트 버튼을 누르면 관심상품으로 등록이 되고,
재차 누르면 해제되는 식으로 만들고 싶습니다.
리다이렉션을 처리할 페이지는 따로 만들어 놓기는 했는데..
허접한 제가 봐도 이 기능은 ajax로 호출하는 식으로 구현해야 할 거 같아 도저히 감이 안잡히네요.
회원님들이라면 어떤 방식으로 기능을 만드실 것 같나요?
저는 우선 veiw.skin.php에 있는 스크랩 기능을 활용해볼까.. 고민중입니다.
저것만 구현하면 웹앱의 기능부는 사실상 완성되는 셈인데..
마지막 관문이 너무 어렵네요 ㅠㅠㅠㅠ
답변 2
<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>
<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>
$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('위시리스트에 이미 등록된 상품입니다.');
}
ajax로 처리하는 게 제일 무난합니다.
view.php의 좋아요 기능을 확인해 보세요.
답변을 작성하시기 전에 로그인 해주세요.