vue + ElementUI + axios + php 前后端数据接口通信示例

前端代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>vue + elementUI</title>
    <!-- 引入样式 -->
    <link rel="stylesheet" href="../js/elementui/index.css">
</head>

<body>
    <div id="app">
        <el-input v-model="input" class="my-input" placeholder="请输入内容...">
        </el-input>
        <el-button plain @click="sendMessage">
            发送
        </el-button>
        <el-input type="textarea" :autosize="{ minRows: 5, maxRows: 4}" placeholder="返回内容" v-model="textarea" class="my-textarea">
        </el-input>
    </div>
</body>
<!-- 引入vue.js -->
<script src="../js/vue.js"></script>
<!-- 引入组件库 -->
<!-- vue的js文件要先于elementui的js文件引入,否则会报错 -->
<script src="../js/elementui/index.js"></script>
<!-- 引入axios -->
<script src="../js/axios.js"></script>
<script>
var app = new Vue({
    el: '#app',
    data() {
        return {
            //在这里进行变量初始化操作
            input: '',
            textarea: ''
        }
    },
    methods: {
        sendMessage() {
            var self = this;
            // input 输入框中的值
            var value = self.input;
            //使用 axios 和后端进行通信
            axios({
                    method: 'post',
                    url: 'http://testcode.com/testphp/php001.php',
                    data: {
                        'param1': value,
                        // 'param2':value
                    },
                    transformRequest: [function(data) { // 从官方手册中获取 https://www.kancloud.cn/yunye/axios/234845;英文文档:https://github.com/axios/axios
                        // 转化 data 中的数据格式 类似 param1=123&param2=123&
                        let ret = ''
                        for (let it in data) {
                            ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
                        }
                        return ret
                    }],
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded'
                    }
                })
                .then(function(response) {
                    //这里是服务器端相应的内容
                    // console.log(response);
                    var status = response.data.status;
                    if (status == 200) {
                        // console.log(response.data.data.message);
                        var content = response.data.data.message;
                        //将内容回显到页面上
                        self.textarea = content;

                    }
                })
                .catch(function(error) {
                    console.log(error);
                });
        }
    },
    mounted() {}

})
</script>
<style scoped>
.my-input {
    width: 300px;
}

.my-textarea {
    width: 402px;
    display: block;
    margin-top: 10px;

}
</style>

</html>

后端代码:

<?php

//接收前台传递的参数
$value = $_POST['param1'];

// 提供 vue 通过axios 请求的接口数据
$res = array(
'status'=>200,
'data'=>array(
    'message'=>"hello {$value} ,I am php in Welcome :) " ,
),
);


$send = json_encode($res);


echo $send;

页面显示效果:
(1)发送前:
在这里插入图片描述

(2)发送后:

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值