分析ecshop控制收货地址的原理步骤

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

     ecshop中,在ecshop购买的时候,会有一个环节,就是输入收货人地址,如果不输入,就会自动转向,让你输入那些信息。那么ECSHOP控制收货地址有那些步骤呢,具体的代码原理又是什么呢.下面将结合程序,一起来分析。

    当你进入购买,点结算之后,本身该跳往checkout那里的。但是在flow.php?setp=checkout里面有一行代码.

    if (!check_consignee_info($consignee, $flow_type))
    {
     
        ecs_header("Location: flow.php?step=consignee\n");
        exit;
    }

    它通过ecshop函数check_consignee_info检查是否输入完整的地址信息,如果不完整,那么将跳转到flow.php?step=consignee.控制你输入收货人信息

    在step=consignee中,我们可以看到.表单里面有checkConsignee()函数做JS校验.

    /* *
 * 检查收货地址信息表单中填写的内容
 */
function checkConsignee(frm)
{
  var msg = new Array();
  var err = false;

  if (frm.elements['country'] && frm.elements['country'].value == 0)
  {
    msg.push(country_not_null);
    err = true;
  }

  if (frm.elements['province'] && frm.elements['province'].value == 0 && frm.elements['province'].length > 1)
  {
    err = true;
    msg.push(province_not_null);
  }

  if (frm.elements['city'] && frm.elements['city'].value == 0 && frm.elements['city'].length > 1)
  {
    err = true;
    msg.push(city_not_null);
  }

  if (frm.elements['district'] && frm.elements['district'].length > 1)
  {
    if (frm.elements['district'].value == 0)
    {
      err = true;
      msg.push(district_not_null);
    }
  }

  if (Utils.isEmpty(frm.elements['consignee'].value))
  {
    err = true;
    msg.push(consignee_not_null);
  }

  if ( ! Utils.isEmail(frm.elements['email'].value))
  {
    err = true;
    msg.push(invalid_email);
  }

  if (frm.elements['address'] && Utils.isEmpty(frm.elements['address'].value))
  {
    err = true;
    msg.push(address_not_null);
  }

  if (frm.elements['zipcode'] && frm.elements['zipcode'].value.length > 0 && (!Utils.isNumber(frm.elements['zipcode'].value)))
  {
    err = true;
    msg.push(zip_not_num);
  }

  if (Utils.isEmpty(frm.elements['tel'].value))
  {
    err = true;
    msg.push(tele_not_null);
  }
  else
  {
    if (!Utils.isTel(frm.elements['tel'].value))
    {
      err = true;
      msg.push(tele_invaild);
    }
  }

  if (frm.elements['mobile'] && frm.elements['mobile'].value.length > 0 && (!Utils.isTel(frm.elements['mobile'].value)))
  {
    err = true;
    msg.push(mobile_invaild);
  }

  if (err)
  {
    message = msg.join("\n");
    alert(message);
  }
  return ! err;
}
   他将控制每个必须输入框,进行严格的控制.

   相关文章:

  ecshop订单列表中显示收货

 ecshop如何去除收货信息中

 

  来源:中国B4C电子商务