我将尝试将Vue.js GUI中的一些数据通过Axios传输到PHP文件。我尝试使用GET和POST参数,但都不起作用:
我在这个index.php表单中输入数据:
我缺少什么?
更新:
我注意到当我将 myjscode.js 更改为以下内容时:
我在这个index.php表单中输入数据:
index.php:
<!DOCTYPE HTML>
<HTML>
<head>
<script src="https://unpkg.com/vue"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
</head>
<BODY>
<div id="container" class="container">
<div>
<label>First name:</label><br/>
<input type="text" v-model='newPerson.firstName'>
</div>
<div>
<label>Last name: </label><br/>
<input type="text" v-model="newPerson.lastName">
</div>
<button v-on:click="sendIdentity()">Submit</button>
</div>
<script src="myjscode.js"></script>
</BODY>
</HTML>
myjscode.js:
当我点击提交数据的按钮时,在console.log(response.data)
中看到正确的输出:let vm = new Vue({
el: "#container",
data: {
newPerson: {
firstName: '',
lastName: ''
}
},
methods: {
sendIdentity: function() {
let personForm = vm.toFormData(vm.newPerson);
axios.post('phpfile.php', personForm)
.then( function(response) {
console.log(response.data)
});
},
toFormData: function(obj) {
let formData = new FormData();
for(let key in obj) {
formData.append(key, obj[key]);
}
return formData;
}
}
});
phpfile.php:
在这个文件中,我正在向MySQL表中插入数据,但是它从来没有生效。我删除了MySQL代码,只留下后面的部分,我发现当我运行这个文件时,我总是收到消息“未接收到数据”。<?php
if( isset($_POST['firstName']) && isset($_POST['lastName'])){
echo $_POST['firstName'];
echo $_POST['lastName'];
} else {
echo 'Data not received';
}
?>
我缺少什么?
更新:
我注意到当我将 myjscode.js 更改为以下内容时:
axios.post('phpfile.php?todo=something', ...)
然后我将 phpfile.php 更改为
<?php
if( isset($_GET['todo']) ){
echo $_GET['todo'];
} else {
echo 'No todo';
}
?>
我在PHP文件中一直看到没有待办事项的提示。因此,在这种情况下,通过GET和POST发送数据都无法工作。