php开发ebay店铺管理系统-订单综合统计

 更新时间:2016年11月25日 15:42  点击:1804
给各位同学整理了一个ebay订单综合统计的php源码程序,并且可以生成图形表这样可以让我们一眼就看出每天的相关数据了,下面来看例子

订单综合统计 

 一、主程序/admin/erp_ebay_order_stats.php

 代码如下 复制代码

 
define('IN_ECS', true);
 
require(dirname(__FILE__) . '/includes/init.php');
require_once(ROOT_PATH . 'languages/' .$_CFG['lang']. '/admin/erp_ebay_statistic.php');
$smarty->assign('lang', $_LANG);
 
/* act操作项的初始化 */
if (empty($_REQUEST['act']))
{
    $_REQUEST['act'] = 'view';
}
else
{
    $_REQUEST['act'] = trim($_REQUEST['act']);
}
 
if ($_REQUEST['act'] == 'view')
{
 
    admin_priv('order_stats'); //检查权限
 
    $is_multi = empty($_POST['is_multi']) ? false : true;
 
    /* 时间参数 */
    if (isset($_POST['start_date']) && !empty($_POST['end_date']))
    {
        $start_date = local_strtotime($_POST['start_date']);
        $end_date = local_strtotime($_POST['end_date']);
    }
    else
    {
        $today  = local_strtotime(local_date('Y-m-d'));
        $start_date = $today - 86400 * 14;
        $end_date   = $today;
    }
 
    $start_date_arr = array();
    $end_date_arr = array();
    if(!empty($_POST['year_month']))
    {
        $tmp = $_POST['year_month'];
 
        for ($i = 0; $i < count($tmp); $i++)
        {
            if (!empty($tmp[$i]))
            {
                $tmp_time = local_strtotime($tmp[$i] . '-1');
                //echo $tmp_time;
                $start_date_arr[] = $tmp_time;
                $end_date_arr[]   = local_strtotime($tmp[$i] . '-' . date('t', $tmp_time));
 
                //echo local_strtotime($tmp[$i] . '-' . date('t', $tmp_time));
            }
        }
    }
    else
    {
        $tmp_time = local_strtotime(local_date('Y-m-d'));
        $start_date_arr[] = local_strtotime(local_date('Y-m') . '-1');
        $end_date_arr[]   = local_strtotime(local_date('Y-m') . '-31');;
    }
 
    /* ------------------------------------- */
    /* -- 综合订单量
    /* ------------------------------------- */
    $max = 0;
 
    if(!$is_multi)
    {
        $general_xml = "<graph caption='$_LANG[general_stats]' shownames='1' showvalues='1' decimalPrecision='0' yaxisminvalue='0' yaxismaxvalue='%d' animation='1' outCnvBaseFontSize='12' baseFontSize='12' xaxisname='$_LANG[date]' yaxisname='$_LANG[order_count]' >";
 
        $sql = "SELECT FLOOR((created_time - $start_date) / (24 * 3600)) AS sn, created_time, COUNT(*) AS order_count".
                " FROM " .$ecs->table('erp_ebay_order').
                " WHERE ebay_status = 'Complete' AND created_time >= '$start_date' AND created_time <= " .($end_date + 86400).
                " GROUP BY sn";
        $res = $db->query($sql);
 
        $key = 0;
 
        while ($val = $db->fetchRow($res))
        {
            $val['order_date'] = gmdate('m-d',$val['created_time'] +  $timezone * 3600 + 86400);
            $general_xml .= "<set name='$val[order_date]' value='$val[order_count]' color='" .chart_color($key). "' />";
            if ($val['order_count'] > $max)
            {
                $max = $val['order_count'];
            }
            $key++;
        }
 
        $general_xml .= '</graph>';
        $general_xml  = sprintf($general_xml, $max);
    }
    else
    {
        $general_xml = "<graph caption='$_LANG[general_stats]' lineThickness='1' showValues='0' formatNumberScale='0' anchorRadius='2'   divLineAlpha='20' divLineColor='CC3300' divLineIsDashed='1' showAlternateHGridColor='1' alternateHGridAlpha='5' alternateHGridColor='CC3300' shadowAlpha='40' labelStep='2' numvdivlines='5' chartRightMargin='35' bgColor='FFFFFF,CC3300' bgAngle='270' bgAlpha='10,10' outCnvBaseFontSize='12' baseFontSize='12' >";
        foreach($start_date_arr AS $k => $val)
        {
 
            $seriesName = local_date('Y-m', $start_date_arr[$k]);
            $general_xml .= "<dataset seriesName='$seriesName' color='" . chart_color($k) . "' anchorBorderColor='" . chart_color($k) . "' anchorBgColor='" . chart_color($k) . "'>";
            $sql = "SELECT FLOOR((created_time - $start_date_arr[$k]) / (24 * 3600)) AS sn, created_time, COUNT(*) AS order_count".
                " FROM " .$ecs->table('erp_ebay_order').
                " WHERE ebay_status = 'Complete' AND created_time >= '$start_date_arr[$k]' AND created_time <= " .($end_date_arr[$k] + 86400).
                " GROUP BY sn";
            $res = $db->query($sql);
 
            $lastDay = 0;
 
            while ($val = $db->fetchRow($res))
            {
                $day = gmdate('d', $val['created_time'] +  $timezone * 3600);
 
                if ($lastDay == 0)
                {
                    $time_span = (($day-1) - $lastDay);
                    $lastDay++;
                    for (; $lastDay < $day; $lastDay++)
                    {
                        $general_xml .= "<set value='0' />";
                    }
                }
                $general_xml .= "<set value='$val[order_count]' />";
 
                $lastDay = $day;
            }
 
            $general_xml .= "</dataset>";
        }
 
        $general_xml .= "<categories>";
 
        for ($i = 1; $i<=31; $i++)
        {
            $general_xml .= "<category label='$i' />";
        }
        $general_xml .= "</categories>";
        $general_xml .= "</graph>";
 
        echo $general_xml;
    }
 
    /* ------------------------------------- */
    /* -- 销售额
    /* ------------------------------------- */
    $max = 0;
 
    if(!$is_multi)
    {
        $amount_xml = "<graph caption='$_LANG[amount_stats]' shownames='1' showvalues='1' decimalPrecision='0' yaxisminvalue='0' yaxismaxvalue='%d' animation='1' outCnvBaseFontSize='12' baseFontSize='12' xaxisname='$_LANG[date]' yaxisname='$_LANG[order_count]' >";
 
        $sql = "SELECT FLOOR((created_time - $start_date) / (24 * 3600)) AS sn, created_time, SUM(subtotal) AS order_amount".
                " FROM " .$ecs->table('erp_ebay_order').
                " WHERE ebay_status = 'Complete' AND created_time >= '$start_date' AND created_time <= " .($end_date + 86400) . " AND ebay_status = 'Complete'" .
                " GROUP BY sn";
        $res = $db->query($sql);
 
        $key = 0;
 
        while ($val = $db->fetchRow($res))
        {
            $val['order_date'] = gmdate('m-d',$val['created_time'] +  $timezone * 3600 + 86400);
            $amount_xml .= "<set name='$val[order_date]' value='$val[order_amount]' color='" .chart_color($key). "' />";
            if ($val['order_amount'] > $max)
            {
                $max = $val['order_amount'];
            }
            $key++;
        }
 
        $amount_xml .= '</graph>';
        $amount_xml  = sprintf($amount_xml, $max);
    }
    else
    {
        $amount_xml = "<graph caption='$_LANG[amount_stats]' lineThickness='1' showValues='0' formatNumberScale='0' anchorRadius='2'   divLineAlpha='20' divLineColor='CC3300' divLineIsDashed='1' showAlternateHGridColor='1' alternateHGridAlpha='5' alternateHGridColor='CC3300' shadowAlpha='40' labelStep='2' numvdivlines='5' chartRightMargin='35' bgColor='FFFFFF,CC3300' bgAngle='270' bgAlpha='10,10' outCnvBaseFontSize='12' baseFontSize='12' >";
        foreach($start_date_arr AS $k => $val)
        {
 
            $seriesName = local_date('Y-m', $start_date_arr[$k]);
            $amount_xml .= "<dataset seriesName='$seriesName' color='" . chart_color($k) . "' anchorBorderColor='" . chart_color($k) . "' anchorBgColor='" . chart_color($k) . "'>";
            $sql = "SELECT FLOOR((created_time - $start_date_arr[$k]) / (24 * 3600)) AS sn, created_time, SUM(subtotal) AS order_amount".
                " FROM " .$ecs->table('erp_ebay_order').
                " WHERE ebay_status = 'Complete' AND created_time >= '$start_date_arr[$k]' AND created_time <= " .($end_date_arr[$k] + 86400) . " AND ebay_status = 'Complete'" .
                " GROUP BY sn";
            $res = $db->query($sql);
 
            $lastDay = 0;
 
            while ($val = $db->fetchRow($res))
            {
                $day = gmdate('d',$val['created_time'] +  $timezone * 3600);
 
                if ($lastDay == 0)
                {
                    $time_span = (($day-1) - $lastDay);
                    $lastDay++;
                    for (; $lastDay < $day; $lastDay++)
                    {
                        $amount_xml .= "<set value='0' />";
                    }
                }
                $amount_xml .= "<set value='$val[order_amount]' />";
                $lastDay = $day;
            }
 
            $amount_xml .= "</dataset>";
        }
 
        $amount_xml .= "<categories>";
 
        for ($i = 1;$i<=31;$i++)
        {
            $amount_xml .= "<category label='$i' />";
        }
        $amount_xml .= "</categories>";
        $amount_xml .= "</graph>";
    }
 
    /* ------------------------------------- */
    /* -- 状态
    /* ------------------------------------- */
    $status_xml  = '';
 
    if(!$is_multi)
    {
        $status_xml .= "<graph caption='".$_LANG['status_stats']."' shownames='1' showvalues='1' decimalPrecision='2' outCnvBaseFontSize='13' baseFontSize='13' pieYScale='45'  pieBorderAlpha='40' pieFillAlpha='70' pieSliceDepth='15' pieRadius='100' bgAngle='460'>";
 
        $sql = "SELECT COUNT(*) AS order_count, ebay_status FROM " . $ecs->table('erp_ebay_order') .
                " WHERE created_time >= '$start_date' AND created_time < " .($end_date + 86400).
                " GROUP BY ebay_status ORDER BY order_count DESC LIMIT 20";
        $res = $db->query($sql);
 
        $key = 0;
        while ($val = $db->fetchRow($res))
        {
            $ebay_status = empty($val['ebay_status']) ? 'no data' : $val['ebay_status'];
 
            $status_xml .= "<set name='$ebay_status' value='$val[order_count]' color='" .chart_color($key). "' />";
            $key++;
        }
        $status_xml .= '</graph>';
    }
    else
    {
        $where = '';
        foreach($start_date_arr AS $k => $val)
        {
            if ($where != '')
            {
                $where .= ' or ';
            }
            $where .= "(created_time >= '$start_date_arr[$k]' AND created_time <= " .($end_date_arr[$k] + 86400).")";
        }
        $sql = "SELECT created_time, ebay_status FROM " . $ecs->table('erp_ebay_order') .
                " WHERE $where";
        $res = $db->query($sql);
        $area_arr = array();
        while ($val = $db->fetchRow($res))
        {
           $date = local_date('Y-m', $val['created_time']);
           $area_arr[$val['ebay_status']] = null;
 
           if (isset($category[$date][$val['ebay_status']]))
           {
               $category[$date][$val['ebay_status']]++;
           }
           else
           {
               $category[$date][$val['ebay_status']] = 1;
           }
        }
        $status_xml = "<chart palette='2' caption='$_LANG[status_stats]' shownames='1' showvalues='0' numberPrefix='' useRoundEdges='1' legendBorderAlpha='0' outCnvBaseFontSize='13' baseFontSize='13'>";
        $status_xml .= "<categories>";
        foreach ($area_arr AS $k => $v)
        {
            $status_xml .= "<category label='$k'/>";
        }
        $status_xml .= "</categories>";
        $key = 0;
        foreach($start_date_arr AS $val)
        {
            $key++;
            $date = local_date('Y-m', $val);
            $status_xml .= "<dataset seriesName='$date' color='" .chart_color($key). "' showValues='0'>";
 
            foreach ($area_arr AS $k => $v)
            {
                if (isset($category[$date][$k]))
                {
                    $status_xml .= "<set value='" .$category[$date][$k]. "'/>";
                }
                else
                {
                    $status_xml .= "<set value='0'/>";
                }
            }
            $status_xml .= "</dataset>";
        }
        $status_xml .= "</chart>";
    }
 
    /* 模板赋值 */
    $smarty->assign('ur_here',      $_LANG['01_erp_order_stats']);
    $smarty->assign('general_data', $general_xml);
    $smarty->assign('amount_data',  $amount_xml);
    $smarty->assign('status_data',  $status_xml);
    $smarty->assign('is_multi',     $is_multi);
 
    /* 显示日期 */
    $smarty->assign('start_date',   local_date('Y-m-d', $start_date));
    $smarty->assign('end_date',     local_date('Y-m-d', $end_date));
 
    for ($i = 0; $i < 5; $i++)
    {
        if (isset($start_date_arr[$i]))
        {
            $start_date_arr[$i] = local_date('Y-m', $start_date_arr[$i]);
        }
        else
        {
            $start_date_arr[$i] = null;
        }
    }
    $smarty->assign('start_date_arr', $start_date_arr);
 
    if (!$is_multi)
    {
        $filename = gmdate($_CFG['date_format'], $start_date + $timezone * 3600 + 86400) . '_' .
                    gmdate($_CFG['date_format'], $end_date + $timezone * 3600 + 86400);
 
        $smarty->assign('action_link',  array('text' => $_LANG['down_order_stats'],
          'href'=>'erp_ebay_order_stats.php?act=download&filename=' . $filename .
            '&start_date=' . $start_date . '&end_date=' . $end_date));
    }
 
    /* 显示页面 */
    assign_query_info();
    $smarty->display('erp_ebay_order_stats.htm');
}
 
/* 报表下载 */
elseif ($act = 'download')
{
    admin_priv('download_order_stats'); //检查权限
 
    $filename = !empty($_REQUEST['filename']) ? trim($_REQUEST['filename']) : '';
 
    header("Content-type: application/vnd.ms-excel; charset=utf-8");
    header("Content-Disposition: attachment; filename=$filename.xls");
    $start_date = empty($_GET['start_date']) ? strtotime('-20 day') : intval($_GET['start_date']);
    $end_date   = empty($_GET['end_date']) ? time() : intval($_GET['end_date']);
 
    //综合订单量统计
    $sql = "SELECT FLOOR((created_time - $start_date) / (24 * 3600)) AS sn, created_time, COUNT(*) AS order_count, SUM(subtotal) AS order_amount".
                " FROM " . $GLOBALS['ecs']->table('erp_ebay_order') .
                " WHERE created_time >= '$start_date' AND created_time <= " .($end_date + 86400) . " AND ebay_status = 'Complete'".
                " GROUP BY sn";
    $res = $GLOBALS['db']->query($sql);
 
    $data .= $_LANG['date'] . "t";
    $data .= $_LANG['order_count'] . "t";
    $data .= $_LANG['order_amount'] . "tn";
 
    while ($val = $GLOBALS['db']->fetchRow($res))
    {
        $val['created_date'] = gmdate($_CFG['date_format'], $val['created_time'] +  $timezone * 3600 + 86400);
        $data .= $val['created_date'] . "t";
        $data .= $val['order_count'] . "t";
        $data .= price_format($val['order_amount']) . "tn";
 
        $total_count += $val['order_count'];
        $total_amount += $val['order_amount'];
    }
 
    $data .= $_LANG['total'] . "t";
    $data .= $total_count . "t";
    $data .= price_format($total_amount) . "tn";
 
    //状态统计
    $sql = "SELECT COUNT(*) AS order_count, SUM(subtotal) AS order_amount, ebay_status FROM " . $GLOBALS['ecs']->table('erp_ebay_order') .
            " WHERE created_time >= '$start_date' AND created_time <= " .($end_date + 86400).
            " GROUP BY ebay_status ORDER BY order_count DESC LIMIT 20";
 
    $res = $GLOBALS['db']->query($sql);
 
    $data .= "tn";
    $data .= $_LANG['order_status'] . "t";
    $data .= $_LANG['order_count'] . "t";
    $data .= $_LANG['order_amount'] . "tn";
 
    while ($val = $GLOBALS['db']->fetchRow($res))
    {
        $data .= $val['ebay_status'] . "t";
        $data .= $val['order_count'] . "t";
        $data .= price_format($val['order_amount']) . "tn";
    }
 
    if (EC_CHARSET != 'UTF-8')
    {
        echo ecs_iconv(EC_CHARSET, 'UTF-8', $data) . "t";
    }
    else
    {
        echo $data. "t";
    }
}
 
?>

二、语言文件/languages/zh_cn/admin/erp_ebay_statistic.php

 

 代码如下 复制代码
<?php
 
 
/* 订单综合统计 */
$_LANG['tab_general'] = '综合订单量';
$_LANG['tab_amount'] = '销售额';
$_LANG['tab_status'] = '状态';
 
$_LANG['general_stats'] = '综合订单量统计';
$_LANG['amount_stats'] = '销售额统计';
$_LANG['status_stats'] = '状态统计';
 
$_LANG['date'] = '日期';
$_LANG['order_status'] = '状态';
$_LANG['order_count'] = '订单量(个)';
$_LANG['order_amount'] = '销售额';
$_LANG['total'] = '合计';
$_LANG['down_order_stats'] = '订单报表下载';
 
/* 买家排行 */
$_LANG['order_by'] = '排行';
$_LANG['buyer_id'] = '买家';
$_LANG['buyer_email'] = '邮箱';
$_LANG['buyer_phone'] = '电话';
$_LANG['country'] = '国家';
$_LANG['order_count'] = '订单数';
$_LANG['amount_sum'] = '购物金额';
$_LANG['created_time'] = '下单时间';
 
$_LANG['show_num'] = '显示数量';
$_LANG['order_amount_sort'] = '按订单数量排序';
$_LANG['download_amount_sort'] = '排行报表下载';
 
/* 公用 */
$_LANG['query'] = '查询';
$_LANG['start_date'] = '开始日期';
$_LANG['end_date'] = '结束日期';
$_LANG['date_interval'] = '日期';
$_LANG['year_month'] = '年月';
?>

三、模板文件/admin/templates/erp_ebay_order_stats.htm

 代码如下 复制代码

{include file="pageheader.htm"}
<script type="text/javascript" src="../js/calendar.php?lang={$cfg_lang}"></script>
<link href="../js/calendar/calendar.css" rel="stylesheet" type="text/css" />
<div class="form-div">
  <form action="" method="post" id="selectForm" name="selectForm">
    {$lang.date_interval}&nbsp;&nbsp;
    <input name="start_date" value="{$start_date}" style="width:80px;" onclick="return showCalendar(this, '%Y-%m-%d', false, false, this);" />
    --
    <input name="end_date" value="{$end_date}" style="width:80px;" onclick="return showCalendar(this, '%Y-%m-%d', false, false, this);" />
    <input type="submit" name="submit" value="{$lang.query}" class="button" />
  </form>
    <form action="" method="post" id="selectForm" name="selectForm">
    {$lang.year_month}&nbsp;&nbsp;
    <!--{foreach from=$start_date_arr item=start_date key=k}-->
    {if $k > 0}
    &nbsp;+&nbsp;
    {/if}
    <input name="year_month[]" value="{$start_date}" style="width:60px;" onclick="return showCalendar(this, '%Y-%m', false, false, this);" />
    <!--{/foreach}--><input type="hidden" name="is_multi" value="1" />
    <input type="submit" name="submit" value="{$lang.query}" class="button" />
  </form>
</div>
<div class="tab-div">
    <!-- tab bar -->
    <div id="tabbar-div">
      <p>
        <span class="tab-front" id="general-tab">{$lang.tab_general}</span>
  <span class="tab-back" id="amount-tab">{$lang.tab_amount}</span>
  <span class="tab-back" id="status-tab">{$lang.tab_status}</span>
      </p>
    </div>

    <!-- tab body -->
    <div id="tabbody-div">
        <!-- 综合订单量 -->
        <table width="90%" id="general-table">
          <tr><td align="center">
            <!--{if $is_multi eq "0"}-->
            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
              codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
              width="565" height="420" id="FCColumn2" align="middle">
              <PARAM NAME="FlashVars" value="&dataXML={$general_data}">
              <PARAM NAME=movie VALUE="images/charts/line.swf?chartWidth=800&chartHeight=400">
              <param NAME="quality" VALUE="high">
              <param NAME="bgcolor" VALUE="#FFFFFF">
              <param NAME="wmode" VALUE="opaque">
              <embed src="images/charts/line.swf?chartWidth=800&chartHeight=400" FlashVars="&dataXML={$general_data}" quality="high" bgcolor="#FFFFFF"  width="800" height="400" name="FCColumn2" wmode="opaque" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
            </object>
            <!--{else}-->
            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
              codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
              width="565" height="420" id="FCColumn2" align="middle">
              <PARAM NAME="FlashVars" value="&dataXML={$general_data}">
              <PARAM NAME=movie VALUE="images/charts/MSline.swf?chartWidth=800&chartHeight=400">
              <param NAME="quality" VALUE="high">
              <param NAME="bgcolor" VALUE="#FFFFFF">
              <param NAME="wmode" VALUE="opaque" />
              <embed src="images/charts/MSline.swf?chartWidth=800&chartHeight=400" FlashVars="&dataXML={$general_data}" quality="high" bgcolor="#FFFFFF"  width="800" height="400" name="FCColumn2" wmode="opaque" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
            </object>
            <!--{/if}-->
          </td></tr>
        </table>

        <!-- 销售额 -->
        <table width="90%" id="amount-table" style="display:none">
          <tr><td align="center">
            <!--{if $is_multi eq "0"}-->
            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
              codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
              width="565" height="420" id="FCColumn2" align="middle">
              <PARAM NAME="FlashVars" value="&dataXML={$amount_data}">
              <PARAM NAME=movie VALUE="images/charts/line.swf?chartWidth=800&chartHeight=400">
              <param NAME="quality" VALUE="high">
              <param NAME="bgcolor" VALUE="#FFFFFF">
              <param NAME="wmode" VALUE="opaque">
              <embed src="images/charts/line.swf?chartWidth=800&chartHeight=400" FlashVars="&dataXML={$amount_data}" quality="high" bgcolor="#FFFFFF"  width="800" height="400" name="FCColumn2" wmode="opaque" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
            </object>
            <!--{else}-->
            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
              codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
              width="565" height="420" id="FCColumn2" align="middle">
              <PARAM NAME="FlashVars" value="&dataXML={$amount_data}">
              <PARAM NAME=movie VALUE="images/charts/MSline.swf?chartWidth=800&chartHeight=400">
              <param NAME="quality" VALUE="high">
              <param NAME="bgcolor" VALUE="#FFFFFF">
              <param NAME="wmode" VALUE="opaque" />
              <embed src="images/charts/MSline.swf?chartWidth=800&chartHeight=400" FlashVars="&dataXML={$amount_data}" quality="high" bgcolor="#FFFFFF"  width="800" height="400" name="FCColumn2" wmode="opaque" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
            </object>
            <!--{/if}-->
          </td></tr>
        </table>

        <!-- 状态 -->
        <table width="90%" id="status-table" style="display:none">
          <tr><td align="center">
          <!--{if $is_multi eq "0"}-->
            <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="465" HEIGHT="320" id="General" ALIGN="middle">
              <PARAM NAME="FlashVars" value="&dataXML={$status_data-tab}">
              <PARAM NAME=movie VALUE="images/charts/pie3d.swf?chartWidth=800&chartHeight=400">
              <PARAM NAME=quality VALUE=high>
              <PARAM NAME=bgcolor VALUE=#FFFFFF>
              <param NAME="wmode" VALUE="opaque" />
              <EMBED src="images/charts/pie3d.swf?chartWidth=800&chartHeight=400" FlashVars="&dataXML={$status_data}" quality=high bgcolor=#FFFFFF WIDTH="800" HEIGHT="400" NAME="General" ALIGN="middle"  wmode="opaque" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
              </OBJECT>
          <!--{else}-->
              <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="465" HEIGHT="320" id="General" ALIGN="middle">
                <PARAM NAME="FlashVars" value="&dataXML={$status_data}">
                <PARAM NAME=movie VALUE="images/charts/ScrollColumn2D.swf?chartWidth=800&chartHeight=400">
                <PARAM NAME=quality VALUE=high>
                <PARAM NAME=bgcolor VALUE=#FFFFFF>
                <param NAME="wmode" VALUE="opaque" />
                <EMBED src="images/charts/ScrollColumn2D.swf?chartWidth=800&chartHeight=400" FlashVars="&dataXML={$status_data}" quality=high bgcolor=#FFFFFF WIDTH="800" HEIGHT="400" NAME="General"  wmode="opaque" ALIGN="middle" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
                </OBJECT>
          <!--{/if}-->
          </td></tr>
        </table>
    </div>
</div>

{insert_scripts files="tab.js"}
<script type="Text/Javascript" language="JavaScript">
<!--
onload = function()
{
  // 开始检查订单
  startCheckOrder();
}
//-->

</script>
{include file="pagefooter.htm"}

今天公司要做一个提问的功能全部使用ajax操作了,这里我只拿其它的一个分类二级下拉效果ajax例子,希望此文章对你会有帮助。

html代码

 代码如下 复制代码

<select id="teId" name="te_id" onchange="getArea()">
   <option value="1000">--请选择分类--</option>
      <option value="1">房产知识</option>
      <option value="8">房屋买卖</option>
      <option value="16">法律法规</option>
      <option value="24">银行贷款</option>
      <option value="31">房产类型</option>
      <option value="40">装修风水</option>
      <option value="47">房产经纪</option>
      <option value="52">其他问题</option>
      <option value="54">楼盘问答</option>
     </select>
  <span id="teTid" ></span>
  <span></span>
  <select id="wealth" name="wealth">
   <option value="">--请选择悬赏积分--</option>
   <option value="0">我要给0</option>
   <option value="5">我要给5</option>
   <option value="15">我要给15</option>
   <option value="30">我要给30</option>
   <option value="50">我要给50</option>
  </select>

ajax代码

 代码如下 复制代码

// 创建ajax引擎
 function getXmlHttpObject() {
  var xmlHttpRequest;

  if (window.ActiveXObject) {

   xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
  } else {

  xmlHttpRequest = new XMLHttpRequest();
 }

 return xmlHttpRequest;
}

var myXmlHttpRequest = "";

function getArea(){
 //alert(ID('teId').value);
 myXmlHttpRequest = getXmlHttpObject();
 // 怎样判断是否可以www.111cn.net
 if (myXmlHttpRequest) {
  // post 发送数据
  var url = "ajax_tiwen.php";
  var date = "teId=" + ID('teId').value;

  myXmlHttpRequest.open("post", url, true);
 
  myXmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
  myXmlHttpRequest.onreadystatechange = TiWen;
  myXmlHttpRequest.send(date);
 }
}

php代码

 代码如下 复制代码
$str = '';
if(!$teamId)
{
 
 $str .= '<select name="te_tid">';
 $str .= ' <option value="1000">--请选择分类--</option>';
 $str .= '</select>';
 echo $str;
 exit;
}
else
{
 $str .= '<select id="teTid" name="te_tid">';
 $str .= ' <option value="1000">--请选择分类--</option>';
 foreach($teamId as $v)
 {
  $str .= '<option value="'.$v['id'].'">'.$v['tname'].'</option>';
 }
 $str .= '</select>';
 echo $str;
}

本站原创教程:转载注明来源 http://www.111cn.net 否则后果自负

本例子要告诉你几种处理办法,一是用js 或者是jquery遍历判断,另一种是传给php之后利用tmp_name值来判断,方法都简单下面我们一起来看看。

单个表单时

 代码如下 复制代码


<form action="?" method="post" enctype='multipart/form-data'>
文件上传:<input type="file" name="file" id="file" />
<input type="submit" id="send" value="提交" />
</form>


<?php
//判断pic文件框是否已经选择文件
if (!empty($_FILES['file']['tmp_name'])) {
echo '已选择文件';
}else {
echo '请选择文件';
}
//PS:$_FILES后面的['tmp_name']一定不要忘写,它表示是一个临时的意思
?>

当然这个可以先用JS去判断一下,方法如下:

 代码如下 复制代码

<script>
var send=document.getElementById("send");
send.onclick=function() {
var file=document.getElementById("file").value;
if (file.length<1) {
alert('请选择图片');
return false;
}
}
</script>

多文件上传时


表单中有多个<input type="file" name="uploadfile" contentEditable="false" style="width:80%">,
提交表单时需要判断其中至少要有一个input已经选择好文件。

 代码如下 复制代码

<input type="file" name="uploadfile" contentEditable="false" style="width:80%"><br>
<input type="file" name="uploadfile" contentEditable="false" style="width:80%"><br>
<input type="file" name="uploadfile" contentEditable="false" style="width:80%"><br>
<input type="file" name="uploadfile" contentEditable="false" style="width:80%"><br>
<input type="file" name="uploadfile" contentEditable="false" style="width:80%">

使用jQuery进行判断:

 代码如下 复制代码

var fileFlag = false;
$("input[name='uploadfile']").each(function(){
if($(this).val()!="") {
fileflag = true;
return false;
}
});
if(fileFlag) {
alert("已有选择好文件的");
}

只要fileFlag为true,就可以退出each循环,不需要再对剩下的input进行判断。
在each中使用return false退出循环,使用return true结束当前次循环,进行下一次循环。

本文章这里给各位整理了几个非常不错的加密,解密例子,希望这些例子来给你工作带来帮助。

加密就是将一些字符转换为另一个字符串的过程,简单的说就是把大门上锁,并且只有你有开启的钥匙。作为一个程序员都应该有属于自己的加密方式,目前最流行的加密算法就是MD5()加密方式。但是在网站已经有了破解的软件用起来也不是很安全。下面简单的介绍一下自定义的加密函数。

 代码如下 复制代码

“/*加密*/

function addcoder($str)

    {

        $yuan = 'abA!c1dB#ef2@Cg$h%iD_3jkl^E:m}4n.o{&F*p)5q(G-r[sH]6tuIv7w+Jxy8z9K0';

        $jia = 'zAy%0Bx+1C$wDv^Eu2-t3(F{sr&G4q_pH5*on6I)m:l7.Jk]j8K}ih@gf9#ed!cb[a';

       if ( strlen($str) == 0) return false;

for($i = 0;$i<strlen($str);$i++)

        {

            for($j = 0;$j<strlen($yuan);$j++)                         

{

if($str[$i]==$yuan[$j])

                    {

$results.= $jia[$j];

break;

}

            }

        }

       return $results;

    }

 


/*解密*/

function removecoder($str)

{

        $yuan = 'abA!c1dB#ef2@Cg$h%iD_3jkl^E:m}4n.o{&F*p)5q(G-r[sH]6tuIv7w+Jxy8z9K0';

        $jia = 'zAy%0Bx+1C$wDv^Eu2-t3(F{sr&G4q_pH5*on6I)m:l7.Jk]j8K}ih@gf9#ed!cb[a';

       If (strlen($str)==0) return false;

  for($i = 0;$i< strlen($str);$i++)

{

 for($j = 0;$j<strlen($jia);$j++)

  {

  if($str[$i]==$jia[$j]) 

{

$results .= $yuan[$j];

break;

}

  }

}

       return $results;

    }

$str = "www.111cn.net";
echo "加密前:".$str."<br >";
$str1= addcoder($str);
echo "加密后:".$str1."<br >";
$str2= removecoder($str1);
echo "解密后:".$str2."<br >";

例子二,利用md5+base64_encode进行编辑处理。

 代码如下 复制代码

<?php
//www.111cn.net
function passport_encrypt($txt, $key) {
srand((double)microtime() * 1000000);
$encrypt_key = md5(rand(0, 32000));
$ctr = 0;
$tmp = '';
for($i = 0;$i < strlen($txt); $i++) {
$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
$tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]);
}
return base64_encode(passport_key($tmp, $key));
}
function passport_decrypt($txt, $key) {
$txt = passport_key(base64_decode($txt), $key);
$tmp = '';
for($i = 0;$i < strlen($txt); $i++) {
$md5 = $txt[$i];
$tmp .= $txt[++$i] ^ $md5;
}
return $tmp;
}
function passport_key($txt, $encrypt_key) {
$encrypt_key = md5($encrypt_key);
$ctr = 0;
$tmp = '';
for($i = 0; $i < strlen($txt); $i++) {
$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
$tmp .= $txt[$i] ^ $encrypt_key[$ctr++];
}
return $tmp;
}
?>

本例子实现中文截取会使用到php_mbstring.dll扩展了,所以必须在php.ini中把它们面的;号去去掉然后重启一下apache才可以用哦。

使用此方法之前,请在php.ini中开启php_mbstring.dll扩展,将extension前面的;分号去掉即可

很多截取中文字符串的方法,大多不能实现按中文个数来截取所要的字符,
以下代码可以实现:

 代码如下 复制代码

<?php
mb_internal_encoding('UTF-8');
$str = "中文测试chineseTest";

header('content-type:text/html; charset=UTF-8');
echo mb_strlen($str);
echo '<br/>';
echo mb_substr($str,1,6);
?>

输出结果:
15
文测试chi

上面只是测试,下面整理例子。

 代码如下 复制代码

<?php
/*mb_string方法截取字符串长度
* $arr_str 数组或字符串
* $tlen 截取长度
* $fleid 要截取的字段(数组形式)
*/
header('Content-Type: text/html; charset=utf-8');
function interception($arr_str,$tlen,$fleid='') {
//判断是否是数组
if (is_array($arr_str)) {
//将数组下标重新排列
foreach ($arr_str as $key => $val) {
for ($k = 0; $k < count($fleid); $k++) {
$content = $arr_str[$fleid[$k]];
//判断是否大于指定的长度
if (mb_strlen($content,'utf-8') > $tlen) {
$arr_str[$fleid[$k]] = mb_substr($content,0,$tlen,'utf-8').'...';
}
}
}
}
//判断是否是字符串
elseif (is_string($arr_str)) {
if (mb_strlen($arr_str,'utf-8') > $tlen) {
$arr_str = mb_substr($arr_str,0,$tlen,'utf-8').'...';
}
}
return $arr_str;
}
//使用示例
//数组示例
$array = array(
'ha' => '哈尔滨市',
'bei' => '地球中国北京市',
);
//字符串示例
$string = '中国的互联网:商业化很牛,公共服务几乎没有谢文';
$string2 = 'abcdefghijkl';
print_r(interception($array,2,array('ha','bei')));
echo '<br />'.interception($string,5);
echo '<br />'.interception($string2,5);
?>

[!--infotagslink--]

相关文章

  • python实现学生通讯录管理系统

    这篇文章主要为大家详细介绍了python实现学生通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-25
  • C#统计字符串中数字个数的方法

    这篇文章主要介绍了C#统计字符串中数字个数的方法,涉及C#遍历字符串并判断数字的技巧,需要的朋友可以参考下...2020-06-25
  • 护卫神 主机管理系统使用说明(MSSQL管理)

    护卫神·主机管理系统该版本支持在Windows Server 200320082012,含32位和64位,直接开设配置WEB站、FTP站,以及SQL Server和MySQL,是您开设和管理虚拟主机的绝好帮手。但是对于新用户可能在使用上有一些困难,因此请仔细阅读如下说明文档...2016-01-27
  • JS+JSP通过img标签调用实现静态页面访问次数统计的方法

    这篇文章主要介绍了JS+JSP通过img标签调用实现静态页面访问次数统计的方法,基于JavaScript动态调用jsp页面通过对TXT文本文件的读写实现统计访问次数的功能,需要的朋友可以参考下...2015-12-16
  • Linux下统计当前文件夹下的文件个数、目录个数

    这篇文章主要介绍了Linux下统计当前文件夹下的文件个数、目录个数,本文使用ls命令配合管理、grep命令实现统计需求,需要的朋友可以参考下...2020-07-11
  • php需登录的文件上传管理系统

    本文给大家介绍一个不错的需要登录的php 文件上传管理系统,功能简单有需要了解的同学可参考。 代码如下<&#63;php$admin_pw="admin";//管理密码$uploaddir="upload";//上传目录session_start();if($_GET['action']=="g...2015-10-30
  • Postgresql 动态统计某一列的某一值出现的次数实例

    这篇文章主要介绍了Postgresql 动态统计某一列的某一值出现的次数实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-26
  • C++学生信息管理系统

    这篇文章主要为大家想详细介绍了C++学生信息管理系统的实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
  • Servlet实现统计页面访问次数功能

    这篇文章主要介绍了Servlet实现统计页面访问次数功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-04-08
  • C语言学生成绩管理系统小设计

    这篇文章主要为大家详细介绍了C语言学生成绩管理系统小设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
  • C#毕业设计之Winform零压健身房管理系统

    本文介绍了个人的《零压健身房管理系统(扁平化)》的基本流程和功能点的介绍,虚心接受各位的意见,欢迎在提出宝贵的意见,大家一起探讨学习...2021-09-26
  • C++顺序表实现图书管理系统

    这篇文章主要为大家详细介绍了C++顺序表实现图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-13
  • MongoDB 中聚合统计计算--$SUM表达式

    这篇文章主要介绍了MongoDB 中聚合统计计算--$SUM表达式的相关知识,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • 基于python实现银行管理系统

    这篇文章主要介绍了基于python实现银行管理系统,文中有非常详细的代码示例,对正在学习python项目制作的小伙伴们有很好的帮助,需要的朋友可以参考下...2021-04-19
  • 详解Java如何使用集合来实现一个客户信息管理系统

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java 集合实现一个客户信息管理系统,大家可以在过程中查缺补漏,提升水平...2021-11-11
  • java控制台实现学生信息管理系统(集合版)

    这篇文章主要为大家详细介绍了java控制台实现学生信息管理系统的集合版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-04-28
  • [原创]php+ajax实现模拟Win文件管理系统五

    [原创]php+ajax实现模拟Win文件管理系统 // 本教程由本站原创,转载请注明来处 作者:www.111cn.net 邮箱:drise@163.com QQ:271728967 // 就是deldir()函数了这个函数的...2016-11-25
  • 收集SQL Server统计信息

    问:我需要在运行SQL Server的机器上定期收集诸如每秒处理事务数(tps)之类的统计信息。为此,我大量使用了Performance Monitor(性能监视器),但却不能得到DBA所需的SQL Server...2016-11-25
  • jQuery实现B2B网站后台管理系统侧导航

    这篇文章主要介绍了jQuery实现B2B网站后台管理系统侧导航,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-09
  • C语言实现学生学籍管理系统

    这篇文章主要为大家详细介绍了C语言实现学生学籍管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25