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
      // ...
    }