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. vim学习(一)之简介、安装、配置

    vim简介 Vim是从 vi 发展出来的一个文本编辑器,是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. 简单的来说, vi 是老式的文字处理器,不过功能已经很齐全了,但是还是 ...

  2. 求x到y的最少计算次数 (BFS)

    时间限制:1秒 空间限制:262144K 给定两个-100到100的整数x和y,对x只能进行加1,减1,乘2操作,问最少对x进行几次操作能得到y? 例如:a=3,b=11: 可以通过3*2*2-1,3 ...

  3. concat()用法

       SELECT school_code,`name`,phone from student WHERE login_name REGEXP 'ning$'LIMIT 10; concat() SE ...

  4. 关于css中touch-action属性 在移动端开发中遇到的问题

    初次接触第一次接触touch-action这个属性 是在之前一个网约车公众号项目中遇到的 当时采用的是vue做框架 cube-ui做组件库 当时在版本迭代的时候增加了余额支付的功能 需要一个密码键盘 ...

  5. Linux设置静态IP后出现的几种问题

    一.设置静态IP后无法重启网卡 如下图所示 原因分析:control process exited with error code.控制进程存在错误代码. 解决方案:可以检查网卡配置文件是否修改错误. ...

  6. Linux日常操作整理

    1. Linux下建立ssh互信 需要在两台机器上保证安装ssh步骤:cd ~/.sshssh-keygen(每台机器执行此操作)ssh root@192.168.2.100 cat ~/.ssh/i ...

  7. MySQL主备同步延迟

    今天看到mycat的日志,发现在wrapper.log中频繁warning:slave延迟23006秒 查看数据指标: show engine innodb status正常,而且slave的拷贝点在 ...

  8. HashMap的相关面试题

    HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此 ...

  9. RubyGems 库发现了后门版本的网站开发工具 bootstrap-sass

    安全研究人员在官方的 RubyGems 库发现了后门版本的网站开发工具 bootstrap-sass.该工具的下载量高达 2800 万次,但这并不意味着下载的所有版本都存在后门,受影响的版本是 v3. ...

  10. linux设置用户自定义别名

    设置用户自定义别名 首先进入当前用户家目录 我这里是 root 查看隐藏文件 注意到.bashrc文件,修改此可以用户自定义别名 保存退出,读入.bashrc设定 看看alias里有没 以后此用户就永 ...