I would like to retrieve the data “project.id” to record it when I click on the button “add study”. When I click on this button, I send the name and the status but i would like to send the id of project too via my API. Si this is the code :
<template>
<div>
<div v-for="(projet,index) in arrayProjects.projects" v-bind:key="index" class="box-project">
<h2>{{projet.title}} - {{projet.nameStructure}}</h2>
<ProjectTable v-bind:id-project="projet.id" />
<div>
<a-button type="secondary" @click="showModalStudy">
Add study {{projet.id}}
</a-button>
</div>
<a-modal
title="Add study :"
:visible="visible"
:confirm-loading="confirmLoading"
@cancel="cancelClick"
@ok="sendClick"
>
<div>
<a-form>
<a-form-item >
<a-input
v-model="newStudy.nameStudy"
/>
</a-form-item>
</a-form>
</div>
</a-modal>
</div>
</div>
</template>
And the javascript :
import ProjectTable from "@/components/ProjectTable";
import axios from "axios";
export default {
name: "ProjectCard",
components: {ProjectTable},
props: ["arrayProjects"],
data() {
return {
visible:false,
confirmLoading: false,
newStudy: {
nameStudy:"",
}
}
},
methods: {
showModalStudy() {
this.visible = true;
},
cancelClick() {
this.visible= false;
console.log("click cancel")
},
sendClick() {
console.log("send")
console.log(this.newStudy.nameStudy)
this.confirmLoading = true;
axios
.post('http://127.0.0.1:8000/api/studies', {
name : this.newStudy.nameStudy,
status: "On load",
})
setTimeout(() => {
this.visible = false;
this.confirmLoading = false;
}, 1000);
}
}
}
How can I add my id of my project in my axios lines to send it ? Thanks for your help
Advertisement
Answer
You should determine the current project.id with a container in data scope for the Add study handler sendClick() with passing project.id to showModalStudy() to overwrite the defined data currentId for the next API call
<a-button type="secondary" @click="showModalStudy(project.id)">
Add study {{ projet.id }}
</a-button>
data() {
return {
currentId = null // will be a id value when user click the button
...
};
},
showModalStudy(projectId) {
this.visible = true;
this.currentId = projectId
},
sendClick() {
// do something with this.currentId
// ...
}