[英]Unset session variable on button click event
I can't unset a session variable properly using a "remove button" click. 我无法使用“删除按钮”单击来正确设置会话变量。 I have two pages: product page and shopping cart page , but problem is that I have a "remove button" in the shopping cart which is not working properly. 我有两个页面:“ 产品”页面和“ 购物车”页面 ,但是问题是我的购物车中有一个“删除按钮”,无法正常工作。
When I click on "remove button" it should run unset($_SESSION['product1']
. 当我单击“删除按钮”时,它应未运行unset($_SESSION['product1']
。
But when I select another item then it can display "previous session item" so it means remove button does not run unset($_SESSION['product1']
properly. How do I solve this issue? 但是,当我选择另一个项目时,它会显示“上一个会话项目”,因此这意味着“删除”按钮未正确运行未unset($_SESSION['product1']
。如何解决此问题?
Product Page 产品页面
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>
Shopping Cart Page 购物车页面
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?>)"/>
Shopping Cart Page Javascript 购物车页面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>
It might be caused by 可能是由于
$pid=$_SESSION['pid1'];
instead of $pid=$_POST['pid1'];
而不是$pid=$_POST['pid1'];
event that is tied to tag wrapped around a button, you coud just use 与绑在按钮周围的标签相关联的事件,您可以使用
<input type="button" class="button2" value="Remove" onclick="del('<?php echo $pid?>');"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.