legend2---开发常用语句

一、总结

一句话总结:

其实敲代码都是很类似的,比如ajax,模型等等,敲代码就是一个由生到熟的过程

1、ajax?

$.post("{:url('broadcast.index/require_broadcast')}", {need_money: need_money} ,function (data) {

页面

 <script>
function require_broadcast(){
$.post("{:url('broadcast.index/require_broadcast')}", {need_money: need_money} ,function (data) {
//console.log(data);
if(parseInt(data.operation_num)==4){
main_content.touben_heroes=data.touben_heroes;
//console.log(data);
//更新school
f_mian_header.school=data.school;
main_content.school_time=data.school_time;
console.log(main_content.school_time);
}else{
if(parseInt(data.operation_num)==3) alert('支付失败');
if(parseInt(data.operation_num)==2) alert('服务器错误');
if(parseInt(data.operation_num)==1) alert('连接成功');
if(parseInt(data.operation_num)==0) alert('连接失败');
if(parseInt(data.operation_num)==0) alert('免费刷新条件不满足'); }
});
}
</script>

控制器

     public function require_broadcast(){
$back_data=[];
$back_data['operation_num']=0;//表示连接失败
if(request()->isAjax()){
$back_data['operation_num']=1;//表示连接成功 //die;
return $back_data;
}
return $back_data;
}

2、事务处理?

Db::startTrans();
Db::commit();
Db::rollback();
 //19、测试事务操作
public function test18(){
Db::startTrans();
$ans1=db('myself_goods')->delete(6);
$ans2=db('myself_goods')->delete(5);
if($ans1&&$ans2){
// 提交事务
dump('commit');
Db::commit();
}else{
// 回滚事务
Db::rollback();
dump('rollback');
}
} //18、测试事务操作
public function test17(){
// 启动事务
Db::startTrans();
try{
$ans1=db('myself_goods')->delete(6);
$ans2=db('myself_goods')->delete(7);
dump('$ans1: '.$ans1);
dump('$ans2: '.$ans2);
// 提交事务
dump('commit');
Db::commit();
} catch (\Exception $e) {
// 回滚事务
Db::rollback();
dump('rollback');
}
}

3、页面重新加载?

location.reload();
location.reload();

4、if语句的简约代码写法?

用数组
     //将英雄的灵根数字字符串转化为汉子数组
public static function reikiRootNormalize($reikiRoot){
$reiki=['金','木','水','火','土','风','冰','雷','光','暗'];
$reikiRoot=explode(',',$reikiRoot);
foreach ($reikiRoot as $key => &$val){
$val=$reiki[intval($val)-1];
}
return $reikiRoot;
}

还有比如判断等级的

 //计算英雄境界
function calcHeroGrade($grade){
$gradeLevel=["练气","筑基","金丹","元婴","出窍","化神","练虚","合体","大乘","渡劫","仙人"];
$gradeSmallLevel=["前期","前期","前期","中期","中期","中期","后期","后期","后期","巅峰"];
$level='';
$level.=$gradeLevel[intval($grade/10)];
$level.=$gradeSmallLevel[intval($grade%10)];
return $level;
}

比如判断升级灵力的

     //$reikiGrowth:表示灵气成长
public static function getGradeReiki($grade,$reikiGrowth){
//dump($reikiGrowth);die;
$rate=[1.02,1.06,1.12,1.03,1.07,1.13,1.04,1.08,1.14,1.3];
$num=100*$reikiGrowth/1000;
$sum=0;
for($i=0;$i<$grade;$i++){
$sum+=$num;
$num*=$rate[($i+10)%10];
}
$sum+=$num;
$ans=[];
$ans['num']=intval($num);//$grade哪一级的升级经验
$ans['sum']=intval($sum);//$grade那一级的总经验
return $ans;
}

5、文字存进数据库转码和解码?

转码:addslashes(htmlspecialchars($data['a_content_art1']));
解码:stripslashes(htmlspecialchars_decode($article['a_content_art1']));

转码

$data['a_content_art1']=addslashes(htmlspecialchars($data['a_content_art1']));

解码(这个不行,要一一对应)

$article['a_content_art1']=stripslashes(htmlspecialchars_decode(stripslashes($article['a_content_art1'])));

这个

$val['bq_stem_info']=stripslashes(htmlspecialchars_decode($val['bq_stem_info']));

6、正则查找和正则替换?

查找:preg_match_all($pattern, $question['bq_answer'], $keywords);
替换:preg_replace($pattern,'', $question['bq_answer_clue']);

查找

$pattern='/<h5\s*?.*?>(.*?)<\/h5>/us';
preg_match_all($pattern, $question['bq_answer'], $keywords);
if(isset($keywords[1][0])){

替换

//2.2 确定答案对应的线索:去掉关键词
$pattern='/<h5\s*?.*?>(.*?)<\/h5>/us';
$question['bq_answer_clue']=preg_replace($pattern,'', $question['bq_answer_clue']);

7、返回ajax模板?

$back_data=[];
$back_data['operation_num']=0;
//3、鉴定装备
public function identify_equipment(){
$back_data=[];
$back_data['operation_num']=0;//表示连接失败
   $back_data['operation_num_info']='';//表示返回信息 
if(request()->isAjax()){
$back_data['operation_num']=1;//表示连接成功
$e_id=input('e_id');//装备id
//dump($e_id);
$h_id=input('h_id');//英雄id
if(!intval($e_id)||!intval($e_id)){
$back_data['operation_num']=6;//没有可鉴定装备或没有可鉴定装备英雄
return $back_data;
} Db::startTrans();
//1、支付灵石
$equipment=db('equipment')->alias('e')->join('school_equipment se','se.se_e_id=e.e_id','LEFT')->
join('template_equipment te','e.e_te_id=te.te_id','LEFT')->find($e_id);
//dump($equipment);die;
if(!isset($equipment['e_sold_price'])||!isset($equipment['se_num'])||$equipment['se_num']<1){
$back_data['operation_num']=7;//装备数量不够
return $back_data;
}
$need_money_num=intval($equipment['e_sold_price']/2);
if($need_money_num<25) $need_money_num=25;
if(!\app\index\model\money\pay\AutoPay::pay($need_money_num)){
$back_data['operation_num']=3;//支付失败
return $back_data;
} //2、支付活力
$base_exp=\app\index\model\upgrade\GetGradeReiki::getGradeReiki($equipment['te_limit_grade'])['sum'];
$need_vigour_num=intval($base_exp*$equipment['e_type_grade']*30/100/3);
if(!\app\index\model\hero\pay\PayVigour::pay_heroVigour($h_id,$need_vigour_num)){
$back_data['operation_num']=5;//英雄活力不够
return $back_data;
} //3、鉴定装备操作:(鉴定装备,原装备数减1,如果装备数为0,就删除这条装备)
$identify_ans=\app\index\model\equipment\identify\IdentifyEquipment::identify_equipment($equipment); if($identify_ans!==false){
$back_data['operation_num']=4;//操作成功
Db::commit();
}else{
$back_data['operation_num']=2;//服务器错误
Db::rollback();
} //步骤三:将英雄石信息返回到页面
$school_equipments=\app\index\model\equipment\full_info\GetSchoolEquipments::get_schoolEquipment_fullInfo();
$school=\app\index\model\school\full_info\GetSchoolFullInfo::get_schoolFullInfo();
$back_data['school_equipments']=$school_equipments;
$back_data['school']=$school; }
return $back_data;
}

页面

        //1、鉴定装备:e_id为装备id,h_id为英雄id
function identify_equipment(){
//步骤一:获取装备id和英雄id
var e_id=$('#identify_equipment_e_id').val();
var h_id=$('#identify_equipment_h_id').val();
console.log(e_id);
console.log(h_id);
if(!parseInt(e_id)||!parseInt(h_id)) alert('没有可鉴定装备或没有可鉴定装备英雄!!');
else{
$.post("{:url('school.warehouse/identify_equipment')}", { e_id: e_id,h_id: h_id} ,function (data) {
console.log(data);
if(parseInt(data.operation_num)==4){
f_mian_header.school=data.school;
main_content.school_equipments=data.school_equipments; //console.log(data);
}else{
if(parseInt(data.operation_num)==7) alert('装备数量不够!!');
if(parseInt(data.operation_num)==6) alert('没有可鉴定装备或没有可鉴定装备英雄!!');
if(parseInt(data.operation_num)==5) alert('英雄活力不够');
if(parseInt(data.operation_num)==3) alert('灵石不够,支付失败');
if(parseInt(data.operation_num)==2) alert('服务器错误');
if(parseInt(data.operation_num)==1) alert('连接成功');
if(parseInt(data.operation_num)==0) alert('连接失败');
}
});
} }
//2、使用装备-->

8、layer.js使用?

直接在函数中套用提供的代码即可
<script>
function layer_goods(content_id){
console.log(content_id);
layer.open({
type: 0,
title: [
'物品信息',
]
,content: $('#'+content_id).html()
,anim: 'up'
});
}
</script>

二、内容在总结中

 

legend2---开发常用语句的更多相关文章

  1. IOS开发常用设计模式

    IOS开发常用设计模式 说起设计模式,感觉自己把握不了笔头,所以单拿出iOS开发中的几种常用设计模式谈一下. 单例模式(Singleton) 概念:整个应用或系统只能有该类的一个实例 在iOS开发我们 ...

  2. HTML5-移动开发常用技巧与弹性布局的使用

    一.移动开发常用技巧 Viewport基本知识 设置布局Viewport的各种信息 1.width=device-width: 设置Viewport视口宽度等于设备宽度 2.initial-scale ...

  3. mo系统常用语句

    mo系统常用语句 一.总结 一句话总结: 1.语言:双语设置(繁体,英语)语句? {:chooseLanguage("確定要刪除么","Are you sure you ...

  4. 程序开发常用第三方类库一览表(VendorLib)

    以下是自己开发过程中用到的第三方类库,记录下来方便查阅 ------------------------------------------------------------------------ ...

  5. 学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍

    C++游戏服务器开发常用工具介绍 在软件开发过程中需要使用的工具类型实属众多,从需求建模到软件测试,从代码编译到工程管理,这些工具都对项目有着不可替代的作用.庄子有云,"吾生也有涯,而知也无 ...

  6. 设计模式之美学习(九):业务开发常用的基于贫血模型的MVC架构违背OOP吗?

    我们都知道,很多业务系统都是基于 MVC 三层架构来开发的.实际上,更确切点讲,这是一种基于贫血模型的 MVC 三层架构开发模式. 虽然这种开发模式已经成为标准的 Web 项目的开发模式,但它却违反了 ...

  7. SQL server 常用语句

    SQL Server中常用的SQL语句   1.概述 2.查询概述 3.单表查询 4.连接查询 5.带有exists的相关子查询 6.SQL的集合操作 7.插入操作 8.删除操作 9.修改操作 10. ...

  8. mysql常用语句总结

    1.创建语句 CREATE DATABASE database_name //创建数据库 //删表 DROP TABLE IF EXISTS `t_social_user_extend`; //建表C ...

  9. JS常用语句

    JavaScript常用语句 1.document.write("");    输出语句 2.JS中的注释为   // 3.传统的HTML文档顺序是:     document-& ...

  10. velocity常用语句速查表

    velocity常用语句 * 变量定义 #set($directoryRoot = "www" ) * #if($!list.size() != 0) //判断list不为空 #f ...

随机推荐

  1. GitHub编辑README.md

    一.标题 等级表示法(六级): #一级标题 ##二级标题 ###三级标题 ####四级标题 #####五级标题 ######六级标题 一级标题/大标题(文本下面加上等于号): 大标题 === 二级标题 ...

  2. Elasticsearch入门教程(一):Elasticsearch及插件安装

    原文:Elasticsearch入门教程(一):Elasticsearch及插件安装 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:h ...

  3. ExpressionTree学习笔记

    概述: 这段时间需要制定自定义查询条件,感觉有必要学习ExpressionTree. 学习参考资料:https://msdn.microsoft.com/en-us/library/mt654263. ...

  4. 在springmvc中使用requestContextListener获取全部的request对象

    RequestContextListener实现了 ServletRequestListener ,在其覆盖的requestInitialized(ServletRequestEvent reques ...

  5. 经典解压缩软件 WinRAR 5.80 sc 汉化去广告版

    目录 1. 按 2. 提醒 3. 下载地址 1. 按 WinRAR拥有全球超过五千万的用户,是目前最受欢迎的压缩软件, 没有比它更加好的方法来实现高效安全的文件传输,减少电子邮件传输时间,或是迅速压缩 ...

  6. mysql占用磁盘IO过高的解决办法

    一.现象 最近发现Mysql服务器磁盘IO一直很高 [root@push-- ~]# iostat -k -d -x Linux -.el7.x86_64 (push--) 2019年07月05日 _ ...

  7. GetShortPathName函数

    Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathName" (ByVal ...

  8. 批量修改zencart型号:品牌名称+型号格式

    批量修改zencart型号:品牌名称+型号格式 将下面代码保存为zc_change_model.php,上传到网站根目录运行即可,操作前先备份数据库 <?php /*** 批量修改zencart ...

  9. valgrind 性能测试工具学习使用

    一.valgrind简介 Valgrind工具套件提供了许多调试和分析工具,可帮助您使程序更快,更正确.这些工具中最受欢迎的是Memcheck.它可以检测许多与C和C ++程序中常见的内存相关的错误, ...

  10. css不同情况下的各种居中方法

    div水平居中 1.行内元素 .parent{ text-align: center } 2.块级元素 .son{ margin: 0 auto ; } 3.flex布局 .parent{ displ ...