zoukankan      html  css  js  c++  java
  • Vue之使用ajax获取json数据,并用v-for循环显示在表格中

    运行的时候,出现了php跨域问题,解决办法是在php的头文件中添加了如下代码:

    header('Content-Type: application/json');
        header('Content-Type: text/html;charset=utf-8');
        header('Access-Control-Allow-Origin:*');
        header('Access-Control-Allow-Methods:*');
        header('Access-Control-Allow-Headers:x-requested-with,content-type');

    目的:在vue中获取从ajax获取的json数据,并用v-for循环显示在表格中

    效果如下:

     

    html示例代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="vue.js"></script>
        <script src="jquery.min.js"></script>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
    
            table {
                margin: 100px auto;
                border: 1px solid #000;
                border-collapse: collapse; /*设置表格的边框是否被合并为一个单一的边框*/
                border-spacing: 0; /*设置相邻单元格的边框间的距离*/
            }
    
            tr {
                width: 300px;
                height: 50px;
                line-height: 50px;
                border-bottom: 1px solid #000;
                background-color: pink;
            }
    
            td, th {
                width: 99px;
                height: 50px;
                line-height: 50px;
                text-align: center;
                border-right: 1px solid #000;
            }
        </style>
    </head>
    <body>
    <div id="app">
        <table>
            <thead>
            <tr>
                <th>姓名</th>
                <th>年龄</th>
                <th>住址</th>
            </tr>
            </thead>
            <tbody>
            <tr v-for="site in sites">
                <td v-text="site.name"></td>
                <td v-text="site.age"></td>
                <td v-text="site.address"></td>
            </tr>
            </tbody>
        </table>
    </div>
    </body>
    </html>
    
    <script>
        new Vue({
            el: '#app',
            data: {
                sites: []
            },
            created: function () {
          //为了在内部函数能使用外部函数的this对象,要给它赋值了一个名叫self的变量。
    var self = this; $.ajax({ url: '/tablev-for.php', type: 'get', data: {}, dataType: 'json' }).then(function (res) { console.log(res);
              //把从json获取的数据赋值给数组 self.sites
    = res; }).fail(function () { console.log('失败'); }) } }) </script>

    php代码如下:

    <?php
         header('Content-Type: application/json');
          header('Content-Type: text/html;charset=utf-8');
        header('Access-Control-Allow-Origin:*');
        header('Access-Control-Allow-Methods:*');
        header('Access-Control-Allow-Headers:x-requested-with,content-type');
    
        echo file_get_contents('tablejson.json');

    json代码示例如下:

    [{
      "name":"baby",
      "age":27,
      "address":"china weifang"
    },
      {
        "name":"黄晓明",
        "age":30,
        "address":"china yantai"
      },
      {
        "name":"鹿晗",
        "age":22,
        "address":"china qingdao"
      }]
  • 相关阅读:
    高通Android分区表详解
    LC 871. Minimum Number of Refueling Stops 【lock, hard】
    LC 265. Paint House II
    Horovod 通信策略
    LC 351. Android Unlock Patterns
    LC 957. Prison Cells After N Days
    解析java泛型(二)
    解析java泛型(一)
    全面理解java异常机制
    java基础之继承(二)
  • 原文地址:https://www.cnblogs.com/creazybeauty/p/8569043.html
Copyright © 2011-2022 走看看