我正在寻找有关我的购物车的一些帮助。我使用一个简单的脚本。一切都按照我的意愿运作,但我不知道如何找出某些产品是否已经存在,如果他们这样做我想增加价值。脚本如下:
for ($x=0;$x<count( $_SESSION["sess_name"]);$x++) {
$x_id= $_SESSION["sess_id"];
$x_name_prd= $_SESSION["sess_name_prd"];
$x_number_prd= $_SESSION["sess_number_prd"];
//if there is a product that is already in the cart then go to function check_me(); to do something to make the sess_number_prd +1 everytimes people click on the button.
if ( $x_name_prd[$x]==$name_prd){
check_me($x_name_prd[$x]);
}
}
我尝试过此方法,但无效
function check_me ($name_prd) {
for ($i=0;$i<count($_SESSION['sess_name']);$i++) {
if (!in_array($_SESSION['sess_id'][$i],$)) {
$temp_id[]=$_SESSION['sess_id'][$i];
$temp_name[]=$_SESSION['sess_name_prd'][$i];
$temp_num[]=+1;
}
}
$_SESSION['sess_id']=$temp_id;
$_SESSION['number_prd']=+1;
$_SESSION['sess_name']=$temp_name;
}
请有人帮帮我..
答案 0 :(得分:0)
如果你对你的购物篮中$ _SESSION存储的数组结构有一些控制权,我建议使用类似的东西。
/*Entry point
It is assumed at this point you have the value product id ($pid) and initiated
your $_SEESION[<basket array index>] set - "basket" in this example
*/
(isset($_SESSION['basket'][$pid]))? $_SESSSION['basket'][$pid]++ : $_SESSION['basket'][$pid] = 1;
这种方法不需要对篮子中的每个项目进行迭代比较,以确定它的实例是否已经添加到篮子中。这将允许一个简单的
foreach($_SESSION['basket'] as $product_id => $noOfProduct){
/*Do your checkout thing here*/
}
在您完成添加后处理篮子。
代码发布在Alex的评论中,问题的例子不是解决方案
for ($x=0;$x<count( $_SESSION["sess_id"]);$x++){
$x_id= $_SESSION["sess_id"][$x]; //[$x] appended, presumed missing
$x_id_prd= $_SESSION["sess_id_prd"];
$x_name_prd= $_SESSION["sess_name"];
$x_size_prd= $_SESSION["sess_size"];
$x_color_prd= $_SESSION["sess_color"];
$x_clr_code_prd= $_SESSION["sess_clr_code"];
$x_num_prd= $_SESSION["sess_num"];
if($x_id_prd[$x]==$id_prd
&& $x_size_prd[$x]==$size_prd
&& $x_color_prd[$x]==$color_prd
&& $x_clr_code_prd[$x]==$clr_code ){
//do something to get $_SESSION["sess_num"]+1;
}
}
评论代码结束