「削除ボタン」をクリックしても、セッション変数を適切に設定解除できません。商品ページとショッピング カート ページの2 つのページがありますが、問題は、ショッピング カートに "削除ボタン" が正しく機能していないことです。
「削除ボタン」をクリックすると、実行されるはずunset($_SESSION['product1']
です。
しかし、別のアイテムを選択すると、「前のセッション アイテム」が表示されるため、削除ボタンがunset($_SESSION['product1']
正しく動作しません。この問題を解決するにはどうすればよいですか?
商品ページ
session_start();
$id=$_REQUEST['id'];
$_SESSION['pid1']= $_POST['ids']; //Product ID//
$_SESSION['product1'][]=$_POST['product'];
<form method="post">
<input type="hidden" name="product[]" value="<?php echo $row1['product']; ?>" />
<input type="hidden" name="ids" value="<?php echo $id?>" />
</form>
<input type="submit" class="button1" name="addtocart" value="Add To Cart"
/>
</form>
ショッピングカートページ
session_start();
$pid=$_SESSION['pid1'];
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($_SESSION['product1'][$pid]);
}
<form name="form1" method="post">
<input type="hidden" name="pid" />
<input type="hidden" name="command" />
<input type="button" class="button2" value="Remove"
onclick="javascript:del(<?php echo $pid?>)"/>
ショッピングカートページのJavascript
<script language="javascript">
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();
}
}
</script>