私がこのコードを持っていたとしましょう
<main>
<form>
<input type="text" v-model="name">
<button type="submit" @click="submit">
Submit From Vue Property
</button>
</form>
</main>
そしてこれはVueコードです。
new Vue({
el : 'main',
data : {
name : ''
},
methods : {
submit(){
}
}
})
代わりにVueデータプロパティからサーバーに送信する方法は?送信メソッドで使用しました。
(正直なところ、私の実際のコードは非常に複雑ですが、問題は同じです。代わりにVueデータプロパティを送信する方法は?)
Ajaxベースのソリューションを探している場合は、「 axios 」というライブラリの使用を検討してください。これにより、jqueryのgetメソッドやpostメソッドとよく似たURLを使用してデータを投稿/取得できます。
Axiosを使用するには、最初にnpm、npm install axios --save
を使用してaxiosをインストールし、import axios from axios
を使用してインポートし、これを送信に使用する必要があります。新しいコードは次のようになります。
<main>
<form @submit.prevent="submit">
<input type="text" v-model="name">
<button type="submit">
Submit From Vue Property
</button>
</form>
</main>
new Vue({
el : 'main',
data : {
name : ''
},
methods : {
submit(){
axios.post('/your-url', {name: this.name})
.then(res => {
// do something with res
})
.catch(err => {// catch error});
}
}
})
ここでは、vue変数を使用して合計フォームデータを送信できます。axiosを使用してAPIを作成できます。
<template>
<div>
<form @submit.prevent="submitform">
<input type="text" v-model="formdata.firstname">
<input type="text" v-model="formdata.lastname">
<input type="text" v-model="formdata.email">
<input type="text" v-model="formdata.password">
<button type="submit">
Submitform
</button>
</form>
</div>
</template>
<script>
import axios from 'axios'
export default {
name: 'el',
data () {
return {
formdata:{ firstname: '', lastname: '', email: '', password: '' }
// this is formdata object to store form values
}
},
methods: {
submitform(){
axios.post('/url', { this.formdata })
.then(res => {
// response
})
.catch(err => {
// error
})
},
mounted () {
},
components: {
}
}
</script>