ecshop2.7中$goods->spec属性规格

2009-10-19 18:12 来源:www.chinab4c.com 作者:ecshop专家

    在ecshop中,往往在购买商品的详细页面,存在ecshop属性下拉,或者是ecshop中checkbox来实现点属性购买的。而且这个购买,都是通过ecshop的ajax机制,通过addToCart()函数写到flow.php中去的。

   首先,详细页面属性,是通过spec_arr = getSelectedAttributes(formBuy);方式,既ecshop系统中js的getSelectedAttributes()函数来实现的。而在addToCart中通过 goods.spec     = spec_arr;给flow.php
 

   在flow.php中。 $json  = new JSON;也就是用json来处理他,传递给php.而$goods = $json->decode($_POST['goods']);返回数组。可以通过$goods->spec方式得到。在ecshop中增加产品去购物车中的过程中。我们可以看到。lib_common.php函数中的db_create_in($item_list, $field_name = '')可以来处理这个属性。

   分析下面ecshop函数

    function db_create_in($item_list, $field_name = '')
{
    if (empty($item_list))
    {
        return $field_name . " IN ('') ";
    }
    else
    {
        if (!is_array($item_list))
        {
            $item_list = explode(',', $item_list);
        }
        $item_list = array_unique($item_list);
        $item_list_tmp = '';
        foreach ($item_list AS $item)
        {
            if ($item !== '')
            {
                $item_list_tmp .= $item_list_tmp ? ",'$item'" : "'$item'";
            }
        }
        if (empty($item_list_tmp))
        {
            return $field_name . " IN ('') ";
        }
        else
        {
            return $field_name . ' IN (' . $item_list_tmp . ') ';
        }
    }
}

   如果传递过来的不是数组,那么他通过explode方式。 $item_list = explode(',', $item_list);来切割,从而进行sql语句的封装。对ecshop的属性进行处理和灵活构造。

  相关文章:

  ecshop增加产品属性和规格

  ecshop购物车中属性显示的

  分析ecshop中颜色属性和商

  来源:中国B4C电子商务