laravel 中如何使用ajax和vue总结


Posted in PHP onAugust 16, 2017

最近写一个项目是基于laravel框架的,这个框架传言是为艺术而创作的优雅框架,简洁分明的风格,很吸引我,所以最近研究比较多。本次就是基于该框架然后将Vue插件加入实现一定的功能,vue插件本身强大,具体不说了,有兴趣的同学可以去官网https://cn.vuejs.org/。laravel 本身php页面是用blade引擎,渲染数据格式:

{{msg}}

但是熟悉Vue渲染的同学知道Vue的格式是:

<div id="app">
 {{ message }}
</div>

这样就引起了冲突,因此,可以是

@{{msg}}

使用@跳出blade引擎模式。

以下代码摘自是laravel-china@leo作者

<tr v-for="item in services">
 <td>@{{ item.id }}</td>
 <td>@{{ item.name }}</td>
 <td>@{{{ displayHosts(item.hosts) }}}</td>
 <td>@{{{ bool2icon(item.enabled) }}}</td>
 <td>@{{{ bool2icon(item.allow_proxy) }}}</td>
 <td>@{{ item.created_at }}</td>
 <td>
  <a href="javascript:void(0)" rel="external nofollow" @click="edit(item)">{{ trans('admin.edit') }}</a>
 </td>
</tr>

以下是本人自己写的代码:

<li class="wrap" v-for="(course,index) in courses.data">
   <div class="img">
    <a v-on:click="show(course)">
    <img v-bind:src="course.thumblink" 
     width="236" height="124">
    </a>
   </div>
   <div class="coursetitle">
   @{{course.name}}
   </div>
   <div class="lecturer">
    讲师:@{{course.teachername}}
    学期:@{{course.semester}}
    
   </div>
   <div class="price">
    @{{course.price}}元
   </div> 
  <div class="pull-left">
  <button type="button" class="btn btn-success btn-xs" v-on:click="show(course)">详情</button>
  </div>

有时候我们可能向带有链接的地方插入Vue数据值作为参数,但是熟悉Vue的同学知道Vue是mustache 语法不能作用在 HTML 特性上,遇到这种情况应该使用 v-bind 指令:

另外一种思路是使用v-on:click。

<a v-on:click="show(course)"> 

Vue实例代码:
methods:{
 show:function(course)
 {
  // debugger;
  window.location.href="/prices/detail/" rel="external nofollow" +course.course_id;
  // console.log(result);
 },
 }

又例如下面的代码:

<img v-bind:src="course.thumblink" width="236" height="124">

就是使用v-bind实现数据的绑定。

最重要的是我吃了很长的时间的惯性思维的亏,认为使用ajax发送请求都是同样的模板。

但是在laravel中必须考虑CSRF-TOKEN。

如下的代码:

function init_courses()
 {
  // debugger;
  $.ajax({
   type:"post",
   url:'/selectCourse', 
   dataType: 'json',
   data:{result:resul='全部,全部,全部'},
   headers: {
   'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
   },
   success:function(data)
   { 
    mydata.courses=eval(data.result); 
    console.log(mydata.courses);
   },
   error: function(xhr, type){

   alert('Ajax error!')

   }

  });
 };

如果你的页面没有看到一个CSRF,可以在页面头部加入

<meta name="_token" content="{{ csrf_token() }}"/>

这样就可以请求成功。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
isset和empty的区别
Jan 15 PHP
PHP编码规范-php coding standard
Mar 16 PHP
浅谈PHP 闭包特性在实际应用中的问题
Oct 30 PHP
在PHP中使用curl_init函数的说明
Nov 02 PHP
sql注入与转义的php函数代码
Jun 17 PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
php结合正则批量抓取网页中邮箱地址
May 19 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
Sep 14 PHP
深入理解PHP内核(二)之SAPI探究
Nov 10 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
May 13 PHP
yii gridview实现时间段筛选功能
Aug 15 #PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
Aug 15 #PHP
Laravel学习教程之IOC容器的介绍与用例
Aug 15 #PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
Aug 15 #PHP
PHP高精确度运算BC函数库实例详解
Aug 15 #PHP
PHP+原生态ajax实现的省市联动功能详解
Aug 15 #PHP
laravel学习笔记之模型事件的几种用法示例
Aug 15 #PHP
You might like
PHP生成Gif图片验证码
2013/10/27 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
微信支付扫码支付php版
2016/07/22 PHP
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
JavaScript 封装一个tab效果源码分享
2015/09/15 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
jQuery响应滚动条事件功能示例
2017/10/14 jQuery
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
python getopt 参数处理小示例
2009/06/09 Python
Python 代码性能优化技巧分享
2012/08/07 Python
python实现socket端口重定向示例
2014/02/10 Python
web.py获取上传文件名的正确方法
2014/08/26 Python
Python中生成Epoch的方法
2017/04/26 Python
django_orm查询性能优化方法
2018/08/20 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
法国大使拉杆箱官网:DELSEY Paris
2018/03/20 全球购物
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
应用电子专业学生的自我评价
2013/10/16 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
2015政治思想表现评语
2015/03/25 职场文书
初中毕业生感言
2015/07/31 职场文书
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android