vue.js过滤器+ajax实现事件监听及后台php数据交互实例

本文实例讲述了vue.js过滤器+ajax实现事件监听及后台php数据交互。分享给大家供大家参考,具体如下:

在vue.js开发时,数据可以使用jquery和vue-resource来获取数据。在获取数据时,一定需要给一个数据初始值。

index.html:

<!doctype html>
<html lang="zh-CN">
<head>
 <meta charset="UTF-8">
 <title>
 vuejs 过滤器、ajax数据、嵌套循环、if判断、事件监听
 </title>
 <style type="text/css">
  [v-cloak] { display: none }
 </style>
</head>
<body>
 <div id="app">
  <button v-on:click="getData">ajax获取数据</button>
  <table>
   <tr>
    <td >id</td>
    <td >姓名</td>
    <td >手机号</td>
    <td >城市</td>
    <td >性别</td>
    <td >通过审核</td>
    <td >我的学生</td>
    <td >操作</td>
   </tr>
   <tr v-for="(item,index) in list ">
    <td>{{item.id}}</td>
    <td>{{item.name}}</td>
    <td>{{item.tel}}</td>
     <td>{{item.sex | sexFormat}}</td>
    <td>{{item.province}}_{{item.city}}</td>
    <td v-if="item.status==1">是</td>
    <td v-else-if="item.status==0">否</td>
    <td >
     <span v-for="stu in item.stu ">
     {{stu.name}},
     </span>
    </td>
    <td>
     <button v-on:click="edit">修改</button>
     <button v-on:click="del(index)">删除</button>
    </td>
   </tr>
  </table>
 </div>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js" charset="utf-8"></script>
<script src="https://cdn.bootcss.com/vue/2.3.0/vue.min.js" charset="utf-8"></script>
<script type="text/javascript">
$(function() {
 Vue.filter('sexFormat',function (value){
  if(value == 1){
   return "男";
  }
  else return "女";
 });
 new Vue({
  el: '#app',
  methods: {
   getData: function(){
     var url="json.php";
     var _self=this;
     $.get(url,function(data){
      _self.list=eval("(" + data +")");
     })
   },
   del:function(index){
    this.list.splice(index,1);
   },
   edit: function () {
    alert('修改')
   },
  },
  data: {
   "list":[{
    "id":"139",
    "name":"王五",
    "tel":"13681829898",
    "status":"1",
    "province":"省",
    "city":"市",
    "sex":"1",
    "stu":[{
     "id":"200",
     "name":"学生1",
     "tel":"13681829898",
    },{
     "id":"201",
     "name":"学生2",
     "tel":"13681829898",
    }],
   },
   {
    "id":"138",
    "name":"麻子",
    "tel":"13681829898",
    "status":"0",
    "province":"省",
    "city":"市",
    "sex":"0",
    "stu":[{
     "id":"300",
     "name":"学生31",
     "tel":"13681829898",
    },{
     "id":"301",
     "name":"学生32",
     "tel":"13681829898",
    }],
   },
   {
    "id":"137",
    "name":"丽丽",
    "tel":"15152882891",
    "status":"0",
    "province":"省",
    "city":"市",
    "sex":"1",
    "stu":[{
     "id":"400",
     "name":"学生41",
     "tel":"13681829898",
    },{
     "id":"401",
     "name":"学生42",
     "tel":"13681829898",
    }],
   },
   {
    "id":"136",
    "name":"娜娜",
    "tel":"15152882891",
    "status":"0",
    "province":"省",
    "city":"市",
    "sex":"0",
    "stu":[{
     "id":"500",
     "name":"学生51",
     "tel":"13681829898",
    },{
     "id":"501",
     "name":"学生52",
     "tel":"13681829898",
    }],
   }]
  }
 })
})
</script>
</html>

json.php:

<?php
header("Content-type:text/html;charset=utf-8");
for($i=1;$i<6;$i++){
 $data[]=array(
  'id'=>$i,
  'name'=>'test'.$i,
  'tel'=>'1368585789'.$i,
  'status'=>1,
  'province'=>'上海市',
  'city'=>'上海市',
  'sex'=>1,
  'stu'=>array(array('id'=>$i,'name'=>'stu'.$i,'tel'=>'1568585789')),
 );
}
echo json_encode($data);exit;

运行结果:

希望本文所述对大家vue.js程序设计有所帮助。

时间: 2018-05-21

vue+php实现的微博留言功能示例

本文实例讲述了vue+php实现的微博留言功能.分享给大家供大家参考,具体如下: html部分: <!doctype html> <html> <head> <meta charset="utf-8"> <title>微博留言</title> <link href="style/weibo.css" rel="external nofollow" rel="s

Vue 项目中遇到的跨域问题及解决方法(后台php)

问题描述 前端 vue 框架,后台 php,百度跨域问题后台加这段代码 header("Access-Control-Allow-Origin: *"); 加了之后报这个错: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The valu

vue.js 双层嵌套for遍历的方法详解, 类似php foreach()

主要运用 template 标签,可相当于 php foreach() foreach(lists as $key){ //todo foreach($key.自定义字段 as k){ //todo } } <template v-for="key in lists" v-cloak> <tr> <td></td> <td ></td> <td ></td> <td ></

php和vue配合使用技巧和方法

php和vue可以配合使用,我们可以利用vue和php进行前后端分离. 进行前后端分离的好处 前后端分离后可以使前后端工程师分工更加明确,让后端工程师专注于业务逻辑的实现以及性能优化,安全.前端工程师专注于用户体验,交互模式.大家各司其职,提高工作效率,充分发挥各自的长处. 进行前后端分离的坏处 1.SEO上的考虑 如果是 PC 端的站点,需要考虑是否需要强支持 SEO,前后端分离的架构,很可能需要搜索引擎的 spider 执行完 js 才能得到完整的可收录的页面,而"执行 js "并

thinkphp集成前端脚手架Vue-cli的教程图解

本文主要介绍怎么在Thinkphp中集成后台前端脚手架框架Vue-Cli. 一.安装Vue-Cli到Thinkphp中 1.1.1 检查是否安装node 终端输入npm的指令如果没有安装的话会提示未找到指令 正确的姿势如下图,说明已经安装了node依赖 1.1.2 安装node 到node的官网地址进行下载并安装步骤安装 node 安装地址:  http://nodejs.cn/download/ 注 :安装 vue-cli 脚手架目前需要node版本为 v4.0 以上 1.2 全局安装vue-

PHP结合Vue实现滚动底部加载效果

前言 最近的一个项目手机端分页跳转不理想,自己做了一个滚动加载的一个Demo,下面话不多说了,来一起看看详细的介绍吧. 实现思路 1.获得滚动条到底部的距离 getScrollBottomHeight() 2.绑定滚动事件handleScroll() ,handleScroll()判断滚动条到底部距离是否小于设置的bottomHight,并且增加一个loading属性,防止加载时滑动时多次触发,造成多次加载 3.Ajax请求load.php,通过Page去查询获得当前页数(page+1)的内容

vue底部加载更多的实例代码

要实现的效果如下: <template> <div class="newsList"> <div v-for="(items, index) in newsList"> <div class="date">{{showDay(index)}}</div> <div class="list" > <ul> <li class="l

XRecyclerView实现下拉刷新、滚动到底部加载更多等功能

介绍: 一个实现了下拉刷新,滚动到底部加载更多以及添加header功能的的RecyclerView.使用方式和RecyclerView完全一致,不需要额外的layout,不需要写特殊的adater. 加载效果内置了AVLoadingIndicatorView上的所有效果,可以根据需要指定. 项目地址:https://github.com/jianghejie/XRecyclerView 效果: 使用: xml <RelativeLayout xmlns:android="http://sc

vue实现滑动到底部加载更多效果

本文实例为大家分享了vue实现滑动到底部加载更多的具体代码,供大家参考,具体内容如下 思路: 如果可视区的高度域dom元素的getBoundingClientRect().bottom高度相同说明已经到了底部,可以实现加载了 template: <template> <div class="content"> <div class="logo"> <div> <img v-if="server[0].t

vue loadmore 组件滑动加载更多源码解析

上一篇讲到在项目中使用上拉加载更多组件,但是由于实际项目开发中由于需求变更或者说在webview中上拉加载有些机型在上拉时候会把webview也一起上拉导致上拉加载不灵敏等问题,我们有时候也会换成滑动到底部自动加载的功能. 既然都是加载更多,很多代码思想势必相似,主要区别在于上拉和滑动到底部这个操作上,所以,我们需要注意: 上拉加载是point指针touch触摸事件,现在因为是滑动加载,需要添加scroll事件去监听然后执行相应回调 上拉加载主要计算触摸滚动距离,滑动加载主要计算containe

Vue中的无限加载vue-infinite-loading的方法

本文介绍了Vue中的无限加载vue-infinite-loading的方法,分享给大家,具体如下: 注意:vue-infinite-loading2.0只能在Vue.js2.0中使用.如果你想在Vue.js1.0中使用,请安装vue-infinite-loading1.3版本 如何安装 npm install vue-infinite-loading --save 导入方式 es6模块导入方式 import InfiniteLoading from 'vue-infinite-loading';

Vue实现一个无限加载列表功能

一个需要判断的地方就是加载中再次触发滚动的时候,不要获取数据. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>列表无限加载</title> <style> * { margin: 0; padding: 0; } li { height: 50px; border-bottom: 1px s

网页前端优化之滚动延时加载图片示例

为什么要延时加载呢?页面加载的时候就显示全部的图片不就得了?有必要多此一举吗?答案是肯定的.当要加载的图片或者内容很多时,如果一次性加载完毕,那么整个页面将会加载很久,意味着要用户等待很久,这是对用户不友好的.或许你还会问,那不就做个分页不就得了?其实这种滚动延时加载的技巧正是用来代替手动点击下一页的分页技术.每换一页都要用户点击一次,这也是对用户不友好的.所以才有了滚动延时加载. 我这里把加载图片作为例子,就好像百度图片里的一样,你往下滚动,它就会继续显示下一页的图片. 要求是这样的,比如我要

Android基于ListView实现类似QQ空间的滚动翻页与滚动加载效果

本文实例讲述了Android基于ListView实现类似QQ空间的滚动翻页与滚动加载效果.分享给大家供大家参考,具体如下: 1. 滚动加载 listView.setOnScrollListener(new OnScrollListener() { //添加滚动条滚到最底部,加载余下的元素 @Override public void onScrollStateChanged(AbsListView view, int scrollState) { if (scrollState == OnScro

vue 项目 iOS WKWebView 加载

1.首先让前端的同事打一个包(index.html,static文件包含css.资源文件.js等)导入项目: :warning: 注意: 把index.html放入项目根目录下,command+n创建一个资源文件.bundle,资源文件里也的包含一份 index.html 下面开始代码: 懒加载WKWebView 引入#import <WebKit/WebKit.h> #import <WebKit/WKWebView.h> 继承 WKNavigationDelegate,WKUI