2013-04-16 2 views
0

제거 단추를 사용하여 장바구니에서 세션 제품의 설정을 해제하려면 어떻게합니까? 아래 코드가 있습니다. '장바구니 지우기'가 작동하고 쇼핑의 모든 항목에 대한 세션을 설정 해제합니다. 그러나 문제는 '제거'가 pid를 통해 단일 제품을 설정 해제하지 않는다는 것입니다.제거 버튼을 사용하여 장바구니에서 세션 제품을 설정 해제하려면 어떻게합니까?

:

session_start(); 

$pid=$_SESSION['pid']; 

function remove_product($pid){ 
    $pid=intval($pid); 
    $max=count($_SESSION['product1']); 

    for($i=0;$i<$max;$i++){ 

    if($pid==$_SESSION['product1'][$i]['pid']){ 
     unset($_SESSION['product1'][$i]); 
     break; 
    } 

    } 

    $_SESSION['product1']=array_values($_SESSION['product1']); 

} 

if($_REQUEST['command']=='delete' && $_REQUEST['pid']>0){ 
    remove_product($_REQUEST['product1'][$pid]); 
} 

if($_REQUEST['command']=='clear' && isset($_REQUEST['remove'])){ 
    unset($_SESSION['image12']); 
    unset($_SESSION['product1']); 
    unset($_SESSION['price12']); 
    unset($_SESSION['itemcode3']); 
    unset($_SESSION['sizes12']); 
} 

JS :

function del(pid){ 

    if(confirm('Do you really mean to delete this item')){ 
    document.form1.pid.value=pid; 
    document.form1.command.value='delete'; 
    document.form1.submit(); 
    } 

} 

function clear_cart(){ 

    if(confirm('This will empty your shopping cart, continue?')){ 
    document.form1.command.value='clear'; 
    document.form1.submit(); 
    } 

} 

HTML :

<form name="form1" method="post"> 

    <input type="hidden" name="pid" /> 
    <input type="hidden" name="command" /> 

    <input type="button" class="button2" value="Clear Cart" onclick="clear_cart()" /> 

    <a href="javascript:del(<?php echo $pid?>)"> 
    <input type="button" class="button2" value="Remove" /> 
    </a> 

</form> 

답변

0
if($_REQUEST['command']=='delete' && $_REQUEST['pid']>0){ 
remove_product($_REQUEST['product1'][$pid]); 
} 

는 더는 $ _REQUEST 내가 볼 수 없습니다 또한 양식 [ '제품 1'], 어쩌면

if($_REQUEST['command']=='delete' && $_REQUEST['pid']>0){ 
remove_product($_REQUEST['pid']); 
} 

$ _REQUEST [ '제거']

+0

조 리 다음은' –

0
if($_REQUEST['command']=='clear' && isset($_REQUEST['remove'])){ 
unset($_SESSION['image12']); 
unset($_SESSION['product1']); 
unset($_SESSION['price12']); 
unset($_SESSION['itemcode3']); 
unset($_SESSION['sizes12']); 
} 

어떤 $ _REQUEST [ '제거하지 않습니다 ']을 보냈습니다.

clear 명령도 $ pid를 전송하지 않습니다. 필요하지 않습니까? 사실

는) (일반 쿼리 문자열을 전송 pid=&command=clear

+0

그래서 솔루션은 지금 무엇을 대신'$ _REQUEST [ '제품 1']의'$ _SESSION [ '제품 1'] '해야 ? –

+0

$ _REQUEST [ 'remove']는 클리어 또는 제거 버튼을 모두 클릭했는지 확인하려고하면 올바른 체크가 아닌 것 같은가요? unset()이 시작되기 전에 무엇을 확인하고 싶습니까? 즉,'pid'가 전송되고'clear'가 클릭되면? –

관련 문제