我有购物车,当我将物品添加到购物车中,当我想更改数量或删除任何物品时,它会给我空车。以下是购物车的代码:
编辑:
<?php
session_start();
require "C:/xampp/...../DButils.php";
require "C:/xampp/..../functions.php";
$msg = '';
if(isset($_REQUEST['command']) && isset($_REQUEST['pid'])>0)
{
remove_product($_REQUEST['pid']);
}
else if(isset($_REQUEST['command']) && $_REQUEST['command'] == 'clear'){
unset($_SESSION['cart']);
}
else if(isset($_REQUEST['command']) && $_REQUEST['command'] == 'update'){
$max=count($_SESSION['cart']);
for($i=0;$i<$max;$i++){
$pid=$_SESSION['cart'][$i]['productid'];
$q=intval($_REQUEST['product'.$pid]);
if($q>0 && $q<=999){
$_SESSION['cart'][$i]['qty']=$q;
}
else{
$msg='Some proudcts not updated!, quantity must be a number between 1 and 999';
}
}
}
?>
答案 0 :(得分:0)
您没有正确使用isset()
功能。这将返回布尔值true或false,而不是值的字符串。你可能打算做的是:
else if(isset($_REQUEST['command']) && $_REQUEST['command'] == 'clear'){
...和...
else if(isset($_REQUEST['command']) && $_REQUEST['command'] == 'update'){
如果没有这些更改,您将永远无法执行这些代码块,因为true / false永远不会等于“clear”或“update”。
答案 1 :(得分:0)
if(isset($_REQUEST['command']) && $_REQUEST['command']=='add' && $_REQUEST['productid']>0)
{
remove_product($_REQUEST['pid']);
}
当您想要添加产品时,您似乎正在尝试删除该产品。
另外,正如@cillosis所提到的
else if(isset($_REQUEST['command'])=='update'){
总是会评估为假。这是因为isset()只返回一个BOOLEAN值(true,false,1,0)并且您正在评估条件:“如果'true / false'等于'update'”并且因为true和false都不相等对于字符串'update',测试每次都会失败。
如果您更新问题中的代码以删除指出的错误,则可以更轻松地回答您的问题。正如目前所写的那样,解读起来相当困难。
答案 2 :(得分:0)
试试这个
if($_REQUEST['command']=='delete' && $_REQUEST['id']>0){
remove_product($_REQUEST['id']);
}
else if($_REQUEST['command']=='clear'){
unset($_SESSION['cart']);
}
else if($_REQUEST['command']=='update'){
$max=count($_SESSION['cart']);
for($i=0;$i<$max;$i++){
$id=$_SESSION['cart'][$i]['id'];
q=intval($_REQUEST['qty'.$id]);
if($q>0 && $q<=999){
$_SESSION['cart'][$i]['qty']=$q;
}
else{
$msg='Some proudcts not updated!, quantity must be a number between 1 and 999';
}
}
}
表单按钮应该是这样的
<a href="javascript:del(<?php echo $id?>)">
<input type="button" class="button5" value="Remove" /></a>
答案 3 :(得分:0)
据我所知,服务器语言(php)不明白给出的目录,
尝试拥有一个有效的目录
要求projectName/functions.php;
希望它也会有所帮助。