vue.js遍历ajax请求的数据

<div id="dv" style="text-align: center;">
<div class="head input-group-prepend">
<select class="btn btn-primary" id="sel" v-model="sel">
<option value="ip">按ip地址搜索</option>
<option value="copy">按微信号搜索</option>
<option value="date">按日期搜索</option>
<option value="address">按地区搜索</option>
</select>
<input type="text" name="" class="form-control" v-model="keywords">
</div>
<table class="table table-hover table-striped table-bordered">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">IP地址</th>
<th scope="col">进入路径</th>
<th scope="col">复制的微信号</th>
<th scope="col">浏览日期</th>
<th scope="col">用户地区</th>
<th scope="col">操作</th>
</tr>
</thead>
<tbody>
<tr v-for="(item,i) in search(keywords)" :key="item.id">
<td>{{ i+1 }}</td>
<td>{{ item.ip }}</td>
<td>{{ item.route }}</td>
<td>{{ item.copy }}</td>
<td>{{ item.date }}</td>
<td>{{ item.address }}</td>
<td><a class="btn btn-danger" style="color: #fff" :href="url_mysql(item.id)">删除</a></td>
</tr>
</tbody>
</table>
</div>

<script type="text/javascript">


function ajax_data(){

  var result;// 使用对象接收ajax传递回来的数据

  $.ajax({
    dataType:'json',// 格式为json格式
    url : 'mysql.php',// 请求数据地址
    async:false,//这里选择异步为false,那么这个程序执行到这里的时候会暂停,等待
    //数据加载完成后才继续执行
    success : function(data){
      result = data;// 将数据传给用来接收的对象
    }
  });
  return result;// 将保存了数据的对象返回
}
var data = ajax_data();// 调用函数,接收函数返回的数据

var xm = new Vue({
  el:'#dv',
  data:{
    sel:'ip',
    keywords:'',
    list:[]
  },
  methods:{
    add(data){

      // 将数据传到 list 中,用于遍历
      for (var i = 0;i<data.length;i++) {
        this.list.push(data[i]);
      }
    }, 

    search(keywords){
      var newarr = this.list.filter(item =>{

        // 判断 检索的 数据类型 
        switch(this.sel){
          case 'ip' :

          // 确定了数据类型后,根据字符串判断 list 每一项的对应的数据,输出存在的 list 项
          if (item.ip.includes(keywords)){
            return item;
          }break;
          case 'copy' :
          if (item.copy.includes(keywords)){
            return item;
          }break;
          case 'date' :
          if (item.date.includes(keywords)){
            return item;
          }break;
          case 'address' :
          if (item.address.includes(keywords)){
            return item;
          }break;
        }

      })
      return newarr;
    },

    // 绑定 href 属性,为他传递参数时,不能直接传递,必须要使用函数return的方式。
    url_mysql(id){
      return "./mysql.php?id="+id;
    }
  }

});

// 调用 vue 对象的add方法,传入数据
xm.add(data);

</script>

posted @   萧一下  阅读(2614)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示