[英]Cannot delete and update items in my shopping cart something wrong with sessions
我有購物車,當我向購物車中添加物品時,當我想更改數量或刪除任何物品時,這給了我空的購物車。 這是開頭的購物車代碼:
編輯:
<?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';
}
}
}
?>
您沒有正確使用isset()
函數。 這將返回布爾值true或false,而不是該值的字符串。 您可能打算做的是:
else if(isset($_REQUEST['command']) && $_REQUEST['command'] == 'clear'){
...和...
else if(isset($_REQUEST['command']) && $_REQUEST['command'] == 'update'){
沒有這些更改,您將永遠無法執行那些代碼塊,因為true / false永遠不會等於“ clear”或“ update”。
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都不相等到字符串“更新”時,測試每次都會失敗。
如果您更新問題中的代碼以刪除所指出的錯誤,則可能更容易為您提供問題的答案。 正如目前所寫的那樣,很難解密。
嘗試這個
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>
據我所知,服務器語言(php)無法理解給定的目錄,請嘗試使用有效的目錄,例如require projectName/functions.php;
希望它也會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.