javascript - 将数据从 MySQL 传递到 Vue.js 数据属性

标签 javascript mysql vue.js

我有一些从 MySQL 获得的数据,我想将其放入 vue.js 数据属性中,以便我可以使用 v-for 对其进行迭代。

我应该选择什么格式(json 或数组?)以及我必须做什么才能使数据在 vue.js 中可用?

<?php
  $sql = 'SELECT * FROM kurse;';
  $result = mysqli_query($conn, $sql);
  $resultCheck = mysqli_num_rows($result);

  if($resultCheck > 0) {

    $termineObj = new stdClass();
    while ($row = mysqli_fetch_assoc($result)) {

      echo $termineObj->datum = $row['datum'];
      $termineObj->uhrzeitvon = $row['uhrzeitvon'];
      $termineObj->uhrzeitbis = $row['uhrzeitbis'];
      $termineObj->freieplaetze = $row['freieplaetze'];

      $termine = json_encode($termineObj);
      echo $termine;
    }
  }
?>

...


<script>var app4 = new Vue({
  el: '#app-4',
  data: {
    termine: termine,
    },
  delimiters: ["((","))"],
  methods: {
    flipstate:function(){
      console.log('flipped');
    }
  },
})</script>

最佳答案

首先,您应该在 PHP 端使用 json_encode() 将您的数据数组转换为 javascript 可以使用的数组。

其次,您有两种实际使用它的选择:

a) 将 JSON 编码的数组/对象直接放入您想要的数据属性中,例如

<?php
    $data = array();
    //parse query results, insert into $data
?>

<script>
    var app4 = new Vue({
        el: '#app-4',
        data: {
            target_attr: <?=json_encode($data)?>
        },
        . . .
    });
</script>

b) 使用 ajax 调用从 JSON 插入数据,例如

您的 PHP 文件

<?php
    $data = array();
    //parse query results, insert into $data
    echo json_encode(array('returned_data'=>$data));
?>

你的 Javascript

<script>
    var app4 = new Vue({
        el: '#app-4',
        data: {
            target_attr: [] //or {} if you are expecting an object
        },
        mounted: {
            var vue_instance = this;
            //using jQuery for simplicity
            $.post('/path/to/your/php/file', {some: 'data if needed'}, function(data) {
                var obj = $.parseJSON(data);
                vue_instance.target_attr = obj.returned_data;
            });
        },
        . . .
    });
</script>

获取让一切正常工作所需的实际代码将留作练习,但我希望这能将您推向正确的方向。祝你好运!

关于javascript - 将数据从 MySQL 传递到 Vue.js 数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47142778/

相关文章:

Javascript 在比较单词中的字母时不区分大小写

javascript - 搜索然后修改结果输入

mysql - 按多语言领域分组

php - 如何在我的mysql数据库中获取planet-latest.osm.bz2?

mysql - 主键的 mariadb 优化不起作用

html - Django/VueJS/PostgreSQL 添加前导/尾随空白选项卡

javascript - 如何在 Visual Studio Code 中设置 Angular 应用程序路径以导入没有前缀的组件?

javascript 代码可以在 mozilla 和 chrome 中运行,但不能在 IE 中运行

vue.js - 如何获取从 .vue 中的别名导入的模块方法的智能感知

laravel - 使用 vueJS laravel 包含 JS 库