2011-03-30 8 views
2

jquery 장바구니를 사용하고 있습니다. http://plugins.jquery.com/project/smartcart2 서버 측에서 세션을 유지 관리하기 위해 AJAX 호출을하려면 onAdded, onRemoved, onUpdated 메소드를 구현하는 데 도움을 줄 수있는 누군가가 있습니까? 개체가 추가/제거/업데이트 될 때마다 서버에서 Ajax 요청을 만들고 JSON 형식으로 데이터를 다시 가져옵니다. 나는 서버에서 업데이트로 obj.attr("qty", eval(msg)[1]); 같은 수량을 업데이 트합니다. 그러나 새로 고침을 누르거나 테이블 데이터가 다시 채워지면 카트 항목이 더 이상 존재하지 않습니다. 그래서, 문제는 정말 제품이 여전히 등 새로 고침Jquery 장바구니 플러그인 : 세션 관리 구현

$('#SmartCart').smartCart({ 
onAdded: function(pObj,quantity){ cartAdded(pObj,quantity);}, 
onRemoved: function(pObj){ cartRemoved(pObj);}, 
onUpdated: function(pObj,quantity){ cartUpdated(pObj,quantity); }, 
}); 

function cartAdded(obj,qty){ 
var product_id = obj.attr("pid"); 
var quantity = qty; 
// Ajax calls for adding product to cart 
function(pObj,quantity){ 
    cartAdded(pObj,quantity);} 
} 

function cartRemoved(obj){ 
var product_id = obj.attr("pid"); 
// Ajax call for removing product from cart 
} 

function cartUpdated(obj,qty){ 
var product_id = obj.attr("pid"); 
var quantity = qty; 
// Ajax call for updating product on cart 
} 

function cartAdded(obj,qty){ 
      var partNum = obj.attr("partNumber"); 
      var quantity = qty;     
     $.ajax({ 
     type: 'POST', 
     url: "json/sessionManager", 
     data : "partNum=" + partNum + "&qty=" + quantity, 
     dataType: "text/json", 
     success: function(msg){ 
      obj.attr("qty", msg[1]); 
     }, 
     error: function(httpRequest, textStatus, errorThrown) { 
      alert("status=" + textStatus + ",error=" + errorThrown); 
     } 
    }); 
     } 

내가보기 엔 같은 주변의 권장 사항을 감사하겠습니다시 쇼핑 카트에 남아있을 수 있도록 세션에서 데이터를 채우는 방법이다.

답변

4
  1. 서버 측에서 장바구니를 구현하십시오.
  2. 장바구니 제품 (제품)을 컬렉션 등에 보관하십시오.
  3. Ajax 요청은 서버 측에 도착할 때마다 :

    • 가져 오기 데이터 (PRODUCT_ID, 수량, ... 등)의 요구 (request).
    • 작업 유형 가져 오기 (추가, 제거 ..).
    • 데이터 유효성을 검사하십시오.
    • 필요한 서버 측 업무 (db 업데이트, 웹 서비스 호출 등)를 수행하십시오.
    • 모든 것이 좋으면 컬렉션에 지정된 제품을 추가/제거하십시오.
    • 서버 사이드 카트를 JSON으로 변환하고 Ajax call의 응답에 답장하십시오.
  4. JSON 응답은 클라이언트 측에 도착할 때마다 : 새 데이터로

    • 업데이트 카트.
    • 아약스의 경우

. jQuery Ajax() 기능

$.ajax({ 
    type: "POST", 
    url: "cart.jsp", 
    data: "p_id=SKU001&quantity=4", 
    success: function(msg){ 
    alert("FOUR SKU001 ADDED TO CART"); 
    } 
}); 

편집을 사용하여 : 우 난을 참조하십시오. product_id가 정의되지 않았 으면 obj.attr("pid");이 작동하지 않음을 의미합니다.

이 플러그인은 제품 정의에 숨겨진 HTML 입력을 사용합니다. (당신이 나에게 묻는다면 평범한 바보) 이 입력에는 유사 속성이 있으며 obj.attr("pid");까지받을 수 있습니다. 양식에 입력이 없거나 입력에 의사 속성이 없으면 코드가 실패합니다.

숨겨진 HTML 입력란에 PSEUDO 속성이 있는지 확인하십시오.예를 들어

:

<div id="SmartCart" class="scMain"> 
    <input type="hidden" pimage="products/product1.jpg" pprice="2299.99" pdesc="" 
    pcategory="Computers" pname="Apple MacBook Pro MA464LL/A 15.4" pid="100"> 

    <input type="hidden" pimage="products/product6.jpg" pprice="2699.99" pdesc="" 
    pcategory="Computers" pname="Sony VAIO 11.1&quot; Notebook PC" pid="101"> 
    <input type="hidden" pimage="products/product3.jpg" pprice="550.00" pdesc="" 
    pcategory="Cameras" pname="Canon Digital Rebel" pid="102"> 
</div> 

저자 문서에서는 :

설명 : 텍스트 굵은이 제품에 대한 설명 의사 속성입니다 표시했다. 제품 이름, 가격, 설명 등

  • PID처럼 : 제품 ID
  • PNAME 이름 제품의
  • pdesc : 제품
  • pprice에 대한 설명 : 제품의 가격
  • 이미지 : 제품 이미지 s pcategory
  • ource : 제품의 종류

당신은 입력 요소에 새로운 속성을 추가하여 자세한 제품 내용을 추가 할 수 있습니다, 그래서 당신은 템플릿을 편집하여 제품 목록이나 카트를 표시 할 수 있습니다. 의사 속성 이름을 사용자 정의하고 속성 설정 섹션의 플러그인 파일에서 구성 할 수 있습니다.

편집 2 : 내 권장 사항 중이 섹션에 어려움이 있다고 생각합니다.

JSON 응답은 클라이언트 측에 도착할 때마다 : 새 데이터로

업데이트 카트.

아래에 숨겨진 입력 사항이 있습니다. 유래에 또 다른 질문을 열고

내가 때문에 같은 게시물에 다른 묻는 첫 번째 질문을 해결 한 후 jQuery를

<div id="SmartCart" class="scMain"> 
    <input type="hidden" pimage="products/product1.jpg" pprice="2299.99" pdesc="" 
    pcategory="Computers" pname="Apple MacBook Pro MA464LL/A 15.4" pid="100"> 

    <input type="hidden" pimage="products/product6.jpg" pprice="2699.99" pdesc="" 
    pcategory="Computers" pname="Sony VAIO 11.1&quot; Notebook PC" pid="101"> 
    <input type="hidden" pimage="products/product3.jpg" pprice="550.00" pdesc="" 
    pcategory="Cameras" pname="Canon Digital Rebel" pid="102"> 
</div> 

을이 입력 (작성, 갱신, 삭제)를 수정하는 방법

이 나쁜 관행을 물어 .

+0

SmartCart 또는 SmartCart2를 사용중인 것은 어느 것입니까? –

+0

스마트 카트 2. 4 단계와 관련된 더 많은 입력이 필요합니다. –

+0

업데이트 된 게시물을 확인할 수 있습니까? 데이터를 새로 고치거나 다시 채우면 데이터가 손실됩니다. 그래서 문제는 실제로 세션에서 장바구니 데이터를 채워서 잃어 버리지 않는 방법입니다. 같은 주위의 추천을 높이 평가할 것입니다. –