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 相关文章推荐
如何在PHP中进行身份认证
Oct 09 PHP
php不使用插件导出excel的简单方法
Mar 04 PHP
php实现将数组转换为XML的方法
Mar 09 PHP
PHP中余数、取余的妙用
Jun 29 PHP
非常重要的php正则表达式详解
Jan 04 PHP
CodeIgniter视图使用注意事项
Jan 20 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
浅谈ThinkPHP中initialize和construct的区别
Apr 01 PHP
PHP实现负载均衡session共享redis缓存操作示例
Aug 22 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 PHP
PHP实现抽奖功能实例代码
Jun 30 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 iconv() : Detected an illegal character in input string
2010/12/05 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
2015/04/08 PHP
ThinkPHP发送邮件示例代码
2016/10/08 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
php-fpm中max_children的配置
2019/03/15 PHP
JavaScript基本编码模式小结
2012/05/23 Javascript
js获取元素外链样式的方法
2015/01/27 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python类属性与实例属性用法分析
2015/05/09 Python
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
PHP开发的一般流程
2013/08/13 面试题
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
小学少先队活动方案
2014/02/18 职场文书
施工协议书范本
2014/04/22 职场文书
有关环保的标语
2014/06/13 职场文书
学雷锋活动总结报告
2014/06/26 职场文书
公司停电通知
2015/04/15 职场文书
雾霾停课通知
2015/04/24 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
MySQL 隔离数据列和前缀索引的使用总结
2021/05/14 MySQL