thinkphp——前台(提交订单)并插入相关信息到数据库

1.购物车列表页:

2.订单主页显示:

3.然后订单主页就是一些表单,如下:

<strong><span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="Generator" content="YONGDA v1.0" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
<title>购物流程_YONGDA商城 - Powered by YongDa</title>
<link href="{$smarty.const.CSS_URL}style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
{
literal
}
table {
	border: 1px solid #dddddd;
	border-collapse: collapse;
	width: 99%;
	margin: auto;
}
td {
	border: 1px solid #dddddd;
}
#consignee_addr {
	width: 450px;
}
{
/literal
}
</style>
</head>
<body>
<div class="block clearfix" style="position: relative; height: 98px;"> <a href="#" name="top"><img class="logo" alt="" src="{$smarty.const.IMG_URL}logo.gif" /></a>
  <div id="topNav" class="clearfix">
    <div style="float: left;"> <font id="ECS_MEMBERZONE">
      <div id="append_parent"></div>
      欢迎光临本店 
      {if $smarty.session.username}
      欢迎您:{$smarty.session.username} <a href="{$smarty.const.__MODULE__}/User/logout" style="color:red;" οnclick="if (confirm('确定要退出登录吗?')) return true; else return false;">退出登录</a> {else} <a href="{$smarty.const.__MODULE__}/User/login"> 登录</a> <a href="{$smarty.const.__MODULE__}/User/register">注册</a> {/if} </font> </div>
    <div style="float: right;"> <a href="#">查看购物车</a> | <a href="#">选购中心</a> | <a href="#">标签云</a> | <a href="#">报价单</a> </div>
  </div>
  <div id="mainNav" class="clearfix">
    <ul>
      <li> <a href="{$smarty.const.__MODULE__}/Index/index" class="cur">首页<span></span></a></li>
      {foreach $pcinfo as $k=>$v}
      <li><a href="{$smarty.const.__MODULE__}/Goods/showlist/category_id/{$v.category_id}" class="cur">{$v.category_name}<span></span> </a> </li>
      {/foreach}
      <li> <a href="#" class="cur">留言板<span></span></a> </li>
    </ul>
  </div>
</div>
<div class="header_bg">
  <div style="float: left; font-size: 14px; color:white; padding-left: 15px;"> </div>
  <form id="searchForm" method="get" action="{$smarty.const.__MODULE__}/Goods/search">
    <input name="keywords" id="keyword" type="text" />
    <input name="imageField" value=" " class="go" style="cursor: pointer; background: url('{$smarty.const.IMG_URL}sousuo.gif') no-repeat scroll 0% 0% transparent; width: 39px; height: 20px; border: medium none; float: left; margin-right: 15px; vertical-align: middle;" type="submit" />
  </form>
</div>
<div class="blank5"></div>
<div class="header_bg_b">
{*购物车总数和总价格*}
  {foreach $cart_data as $k=>$v}
  {foreach $ginfo as $kk=>$vv}
    {if $vv.goods_id==$v.goods_id}
     {$num=$num+{$vv.goods_price*$v.goods_num}}
    {$number=$number+{$v.goods_num}}
      {/if}
    {/foreach}
    {/foreach}
  <div class="f_r" style="padding-right: 10px;"> <img style="vertical-align: middle;" src="{$smarty.const.IMG_URL}biao3.gif" /> <span class="cart" id="ECS_CARTINFO"> <a href="{$smarty.const.__MODULE__}/Cart/showlist" title="查看购物车">您的购物车中有 {$number} 件商品,总计金额 ¥{$num}元。</a></span> <a href="{$smarty.const.__MODULE__}/Cart/showlist"><img style="vertical-align: middle;" src="{$smarty.const.IMG_URL}biao7.gif" /></a> </div>
</div>
<div class="block box">
  <div class="blank"></div>
  <div id="ur_here"> 当前位置: <a href="#">首页</a> <code>></code> 购物流程 </div>
</div>
<div class="blank"></div>
<div class="blank"></div>
<div class="block">
  <form action="{$smarty.const.__CONTROLLER__}/cartToOrder" method="post" name="theForm" id="theForm" >
    <div class="flowBox">
      <h6><span>商品列表</span><a href="#" class="f6">修改</a></h6>
      <table cellpadding="5" cellspacing="1" width="99%">
        <tbody>
          <tr>
            <th>商品名称</th>
            <th>本店价</th>
            <th>购买数量</th>
            <th>小计</th>
          </tr>
          {foreach $cart_data as $k=>$v}
          <tr>
          {foreach $ginfo as $kk=>$vv}
          {if $vv.goods_id==$v.goods_id}
            <td><a href="#" target="_blank" class="f6">
            <input type="hidden" name="sub_goods_id[]" value="{$vv.goods_id}" />
            {$vv.goods_name}</a></td>
            <td align="right">
            ¥{$vv.goods_price}元</td>
            <td align="right">
            <input type="hidden" name="sub_goods_buy_number[]" value="{$v.goods_num}" />{$v.goods_num}</td>
            <td align="right">
           ¥{$vv.goods_price*$v.goods_num}元</td>
           {/if}
          {/foreach}
          </tr>
          {/foreach}
          <tr>
            <td colspan="7"> 购物金额小计 ¥{$num}元</td>
          </tr>
        </tbody>
      </table>
    </div>
    <div class="blank"></div>
    <div class="flowBox">
      <h6><span>收货人信息</span><a href="#" class="f6">修改</a></h6>
      <table cellpadding="5" cellspacing="1" width="99%">
        <tbody>
          <tr>
            <td>收货人姓名:</td>
            <td><input type="text" name="consignee_name" /></td>
            <td>电子邮件地址:</td>
            <td><input type="text" name="consignee_email" /></td>
          </tr>
          <tr>
            <td>省份:</td>
            <td><input type="text" name="consignee_province" /></td>
            <td>城市:</td>
            <td><input type="text" name="consignee_city" /></td>
            <td>地区:</td>
            <td><input type="text" name="consignee_district" /></td>
          </tr>
          <tr>
            <td>详细地址:</td>
            <td colspan="2"><textarea name="consignee_address" rows="1" cols="30"></textarea></td>
            <td>邮政编码:</td>
            <td><input type="text" name="consignee_zipcode" /></td>
          </tr>
          <tr>
            <td>电话:</td>
            <td><input type="text" name="consignee_tel" /></td>
            <td>手机:</td>
            <td><input type="text" name="consignee_mobile" /></td>
          </tr>
          <tr>
            <td>最佳送货时间:</td>
            <td><input type="text" name="consignee_best_time" /></td>
          </tr>
        </tbody>
      </table>
    </div>
    <div class="blank"></div>
    <div class="flowBox">
      <h6><span>配送方式</span></h6>
      <script>
     /* window.οnlοad=function(){
			var radio=document.getElementsByName("shipping");
			for(var i=0;i<radio.length;i++){
				if(radio[i].checked==true){
				value=radio[i].value;
				document.write(value);
				}
			}
		}*/
      </script>
      <table id="shippingTable" cellpadding="5" cellspacing="1" width="99%">
        <tbody>
          <tr>
            <th width="5%"> </th>
            <th width="25%">名称</th>
            <th width="15%">费用</th>
          </tr>
          <tr>
            <td valign="top"><input name="order_ship_name" value="5"  type="radio" checked="checked" /></td>
            <td valign="top"><strong>申通快递</strong></td>
            <td align="right" valign="top">¥15.00元</td>
          </tr>
          <tr>
            <td valign="top"><input name="order_ship_name" value="3"  type="radio" /></td>
            <td valign="top"><strong>城际快递</strong></td>
            <td align="right" valign="top">¥10.00元</td>
          </tr>
          <tr>
            <td valign="top"><input name="order_ship_name" value="6"   type="radio" /></td>
            <td valign="top"><strong>邮局平邮</strong></td>
            <td align="right" valign="top">¥3.50元</td>
          </tr>
        </tbody>
      </table>
    </div>
    <div class="blank"></div>
    <div class="flowBox">
      <h6><span>支付方式</span></h6>
      <table id="paymentTable" cellpadding="5" cellspacing="1" width="99%">
        <tbody>
          <tr>
            <th width="5%"> </th>
            <th width="20%">名称</th>
            <th width="15%">手续费</th>
          </tr>
          <tr>
            <td valign="top"><input name="order_pay_name" value="1" iscod="0" type="radio" /></td>
            <td valign="top"><strong>支付宝支付</strong></td>
            <td align="right" valign="top">¥0.00元</td>
          </tr>
          <tr>
            <td valign="top"><input name="order_pay_name" value="2" iscod="0" type="radio" checked="checked"/></td>
            <td valign="top"><strong>银行汇款/转帐</strong></td>
            <td align="right" valign="top">¥0.00元</td>
          </tr>
          <tr>
            <td valign="top"><input name="order_pay_name" value="3" iscod="1" disabled="true" type="radio" /></td>
            <td valign="top"><strong>货到付款</strong></td>
            <td align="right" valign="top"><span id="ECS_CODFEE">¥0.00元</span></td>
          </tr>
        </tbody>
      </table>
    </div>
    <div class="blank"></div>
    <div class="blank"></div>
    <div class="flowBox">
      <h6><span>费用总计</span></h6>
      <div id="ECS_ORDERTOTAL">
        <table cellpadding="5" cellspacing="1" width="99%">
          <tbody>
            <tr>
              <td align="right"> 商品总价: <font class="f4_b">¥{$num}元</font></td>
            </tr>
            <tr>
              <td align="right"> 应付款金额: <font class="f4_b">¥{$num}元
              <input type="hidden" name="order_amount" value="{$num}" />
              {*订单创建时间*}<input type="hidden" name="order_create_time" value="{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}" />
              </font></td>
            </tr>
          </tbody>
        </table>
      </div>
      <div style="margin: 8px auto;">
        <input type="submit" value='提交订单' type="image" />
        <input name="step" value="done" type="hidden" />
      </div>
    </div>
  </form>
</div>
<div class="blank"></div>
<div class="block"> <a href="#" target="_blank" title="YONGDA商城"><img alt="YONGDA商城" src="{$smarty.const.IMG_URL}di.jpg" /></a>
  <div class="blank"></div>
</div>
<div class="blank"></div>
<div id="bottomNav" class="box block">
  <div class="box_1">
    <div class="links clearfix"> <a href="#" target="_blank" title="YONGDA商城">Powered by <strong><span style="color: rgb(51, 102, 255);">YongDa</span></strong></a> [<a href="#" target="_blank" title="">yongda商城</a>] </div>
  </div>
</div>
<div class="blank"></div>
<div id="bottomNav" class="box block">
  <div class="bNavList clearfix"> <a href="#">免责条款</a> | <a href="#">隐私保护</a> | <a href="#">咨询热点</a> | <a href="#">联系我们</a> | <a href="#">公司简介</a> | <a href="#">批发方案</a> | <a href="#">配送方式</a> </div>
</div>
<div id="footer">
  <div class="text"> © 2005-2012 YONGDA 版权所有,并保留所有权利。<br />
  </div>
</div>
</body>
</html></span></strong>

4.订单提交后:控制器里如下:

<strong><span style="font-size:18px;">//购物车结算(提交订单)
	function cartToOrder(){
		//接收index传过来的值
		$sub_goods_buy_number=I('sub_goods_buy_number',0);//商品数量
		
		$consignee_name=I('consignee_name',0);//收货人姓名
		$consignee_email=I('consignee_email',0);//电子邮件地址
		$consignee_province=I('consignee_province',0);//省份
		$consignee_city=I('consignee_city',0);//城市
		$consignee_district=I('consignee_district',0);//地区
		$consignee_address=I('consignee_address',0);//详细地址
		$consignee_zipcode=I('consignee_zipcode',0);//邮政编码
		$consignee_tel=I('consignee_tel',0);//电话
		$consignee_mobile=I('consignee_mobile',0);//手机
		$consignee_best_time=I('consignee_best_time',0);//最佳送货时间
		
		$order_ship_name=I('order_ship_name',0);//配送方式名称
		$order_pay_name=I('order_pay_name',0);//支付方式
		$order_amount=I('order_amount',0);//订单总金额
		$order_create_time=I('order_create_time',0);//订单创建时间
		
				
		$uid=session("user_id");
		if(!$uid){
		echo "<script>alert('请先登录');location.href='../User/login'</script>";
		//$this->ajaxReturn(array("status"=>0,"info"=>"请先登录"));
		}
		$cart=unserialize(D('Cart')->where("cart_uid='{$uid}'")->getField("cart_info"));
		
		$id_arr=array();
		foreach($cart as $k=>$v){
			$id_arr[]=$v['goods_id'];
		}
		$ids=implode(',',$id_arr);//把商品id由数组变为逗号隔开
		$goods=D('Goods')->where("goods_id in ($ids)")->select();
		$order_data=array();
		foreach($goods as $k=>$v){
			$order_data['order_sn']=date("Ymdhis").'_'.$v['goods_id'];
			$order_data['order_uid']=$uid;
			$order_data['order_uname']=$consignee_email;
			$order_data['order_status']=1;
			$order_data['order_ship_name']=$order_ship_name;
			$order_data['order_pay_name']=$order_pay_name;
			$order_data['order_amount']=$order_amount;
			$order_data['order_create_time']=$order_create_time;
		}
		$oinfo=D('Order')->add($order_data);
		$order=D('Order')->field('order_sn')->find($oinfo); 
		$order_sn=$order['order_sn'];
		if($oinfo){
			foreach($goods as $k=>$v){
				$order_goods_data=array();
				$order_goods_data['sub_pid']=$oinfo;
				$order_goods_data['sub_order_sn']=$order_sn;
				$order_goods_data['sub_goods_id']=$v['goods_id'];
				$order_goods_data['sub_goods_name']=$v['goods_name'];
				$order_goods_data['sub_goods_price']=$v['goods_price'];
				$order_goods_data['sub_goods_buy_number']=$sub_goods_buy_number[$k];
				$order_goods_data['sub_goods_buy_sum']=$sub_goods_buy_number[$k]*$v['goods_price'];
				$sinfo=D('Order_sub')->add($order_goods_data);				
			}			
			if($sinfo){
				foreach($goods as $k=>$v){
					$user_consignee_data=array();
					$user_consignee_data['consignee_u_id']=$uid;
					$user_consignee_data['consignee_name']=$consignee_name;
					$user_consignee_data['consignee_email']=$consignee_email;
					$user_consignee_data['consignee_province']=$consignee_province;
					$user_consignee_data['consignee_city']=$consignee_city;
					$user_consignee_data['consignee_district']=$consignee_district;
					$user_consignee_data['consignee_address']=$consignee_address;
					$user_consignee_data['consignee_zipcode']=$consignee_zipcode;
					$user_consignee_data['consignee_tel']=$consignee_tel;
					$user_consignee_data['consignee_mobile']=$consignee_mobile;
					$user_consignee_data['consignee_best_time']=$consignee_best_time;
				}
				$is_ok=D('User_consignee')->add($user_consignee_data);
				if($is_ok){
					$rst=D('Cart')->where("cart_uid='{$uid}'")->delete();//订单提交后删除用户购物车
					if($rst)
					echo "<script>alert('订单提交成功');location.href='../Cart/showlist'</script>";
				}
			}
		}
		//show_bug($ginfo);
	}</span></strong>

      


初学者如需购买thinkphp程序(包括前后台),加个人微信LBXZFR2013


微信扫描关注“公众号” 有惊喜

公众号ID“lbxzsan7378”



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
感谢您的提问。对于您的问题,您可以按照以下步骤来配置链接多个数据库,并查询数据: 1. 首先,在thinkphp5中,您需要在database.php配置文件中配置多个数据库连接信息,例如: ```php return [ 'db1' => [ // 数据库类型 'type' => 'mysql', // 数据库连接DSN配置 'dsn' => '', // 数据库连接参数 'params' => [], // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', // 数据库编码默认采用utf8 'charset' => 'utf8mb4', ], 'db2' => [ // 数据库类型 'type' => 'mysql', // 数据库连接DSN配置 'dsn' => '', // 数据库连接参数 'params' => [], // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', // 数据库编码默认采用utf8 'charset' => 'utf8mb4', ], ]; ``` 2. 接下来,在需要使用不同数据库的地方,您可以使用Db类的connect方法来切换数据库连接,例如: ```php // 切换到db1数据库 Db::connect('db1')->name('user')->where('id', 1)->find(); // 切换到db2数据库 Db::connect('db2')->name('user')->where('id', 1)->find(); ``` 3. 最后,您可以使用查询构建器来执行数据库查询操作,例如: ```php // 查询db1数据库中的user表中id为1的记录 Db::connect('db1')->name('user')->where('id', 1)->find(); // 查询db2数据库中的user表中id为1的记录 Db::connect('db2')->name('user')->where('id', 1)->find(); ``` 希望我的回答对您有所帮助,如果您还有其他问题,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值