动态传参实例详解,使用技巧和实例

我们知道数据库处理sql是一条条处理的,假设购买商品的流程是这样的:

微信小程序 动态传参实例详解

php界定符就是为了照样输出内容。它的格式如下:

sql1:查询商品库存

在微信小程序的开发过程中经常会用到动态传参,比如根据某一页面传参的不同,加载不同的新的页面。接下来介绍下如何实现。

复制代码 代码如下:

if(库存数量 > 0)
{
  //生成订单...
  sql2:库存-1
}

上一篇博客中介绍了如何用wx:for循环显示数组,一般情况下我们要实现的功能是点击不同的元素进入不同的页面,比如在另一个页面加载某个元素的详细信息。

$str = <<< EOF
    Here is your string
    ……
EOF;

当没有并发时,上面的流程看起来是如此完美,假设同时两个人下单,而库存只有1个了,在sql1阶段两个人查询到的库存都是>0的,于是最终都执行了sql2,库存最后变为-1,超售了,要么补库存,要么等用户投诉吧。

跳转这里采用navigator跳转,在navigator跳转的链接上将参数加上去:

其中EOF是自定义的变量,但要成对出现!

解决这个问题比较流行的思路:

index.wxml(根据点击页面的不同传递参数)

附上一段php示例代码:

1.用额外的单进程处理一个队列,下单请求放到队列里,一个个处理,就不会有并发的问题了,但是要额外的后台进程以及延迟问题,不予考虑。

<view class="item" wx:for="{{showData}}"> 
 <navigator url="/pages/logs/logs?id={{item.id}}" class="title"> 
 <view class="td"> 
  {item.MTId}} {{item.status}} 
 </view> 
 </navigator> 
</view> 

复制代码 代码如下:

2.数据库乐观锁,大致的意思是先查询库存,然后立马将库存+1,然后订单生成后,在更新库存前再查询一次库存,看看跟预期的库存数量是否保持一致,不一致就回滚,提示用户库存不足。

id是在本地数据中已经写好的,参见以前的博客,它也对应了每一条数据其他详细信息。由此可以想到,我们只要在下一级页面根据传递参数id再在本地数据中查询,然后将查询结果进行显示,就做到了加载详细信息这个功能。

<?php
$a = “www.jb51.net”;
print <<< jb51
<select>
 <option value=”1″>第一项</option>
</select>
这里是{$var}的php教程
jb51;
?>

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签:
网站地图xml地图