장바구니 수량 문제입니다.

조회수 391회

장바구니 수량 작업하고있는데요. 처음엔 자바스크립트로만 수량을 바꿔서 주문건으로 값을 넘기면 되겠다 싶었는데 생각해보니 장바구니 수량을 바꾸고 나면 로그아웃하고 다시 로그인해도 수량이 바뀐채로 되어있어야 할 것 같더라구요. 그러면 수량을 바꾸면 바로 그값이 db에 저장이 되도록 해야겠다 싶어서 일단 거기까지는 했습니다. 하지만 수량을 바꿈과 동시에 페이지가 새로고침이 되도록 하는 방법 밖에 모르겠더라구요... 좀 찾아보니 ajax를 쓰면 된다는데 정확히 어떻게 쓰는지도 모르겠고... 현재 controller에는 -버튼을 누르면 count가 -1 되면서 페이지 불러오기, +버튼은 count가 +1 되면서 페이지 불러오기 입니다. 밑에 참고사항으로 올려볼게요.

@RequestMapping("/cart_update_plus")
    public String cart_update_plus(@RequestParam("status_idx") int status_idx, HttpServletRequest request, Model model) {
        int idx = (int) request.getSession().getAttribute("user_idx");
        int update_plus = iBasketdao.update_plus( idx, status_idx );
        List<BasketDto> list = iBasketdao.list(idx);
        int sum = iBasketdao.sum(idx);
        model.addAttribute("list", list);
        model.addAttribute("sum", sum);
        model.addAttribute("mainPage", "Mypage/cart.jsp");
        return "index";
    }

만약에 ajax를 쓴다면 지금 컨트롤러에 설정해둔거를 다 지우고 아예다르게 해야하는건지 현재 컨트롤러에 해놓은걸 ajax로 처리하는 건지 궁금합니다. 제가 너무 초보라서 ajax에 대한 글들을 찾아봐도 막상 제꺼에 적용해보려고하니 이해를 못하겠더라구요... ㅜㅜ 답변은 미리 감사드립니다.

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    일단 return sum;으로 고치세요.

    그러면 POST /cart_update_plus를 AJAX로 호출했을 때 무슨 숫자가 응답될 겁니다.

    그러면 자바스크립트 쪽에서는 그걸 받아서 기존 수량이 있던 자리에 innerHTML=로 넣어 주시면 됩니다.

    여기 들어가서 보시면 “change content” 예제가 있는데요, 이게 질문자님이 하셔야 하는 작업과 기본 핵심이 같습니다. 잘 읽어보시고 이해해서 적용해 보세요!

    • 답변 감사합니다 ^^ 유도현 2022.10.17 14:24

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)