首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使我的删除函数在Vue JS中工作?

如何使我的删除函数在Vue JS中工作?
EN

Stack Overflow用户
提问于 2021-12-28 18:35:05
回答 1查看 97关注 0票数 0

我正在开发一个网站,我遇到了一些问题。我对编码非常陌生,所以请原谅我的新手,但是我很难创建一个功能删除用户按钮。当我单击delete时,它会带我到delete url,但不会从我的主表或mysql数据库中删除。如果能提供任何建议,我们将不胜感激。这是与这个问题有关的代码。

主页表;

代码语言:javascript
复制
<template>
  <div class="between:flex bottom:margin-3">
    <div class="center: flex-items">
      <span class="right:margin-1">Show</span>
      <select v-model="currentEntries" class="select" @change="paginateEntry">
        <option v-for="se in showEntries" :key="se" :value="se">
          {{ se }}
        </option>
      </select>
      <span class="left:margin-1">Entries</span>
      <div class="end:flex"></div>
    </div>
  </div>
  <div id="tableHolderDiv">
    <table class="table table-striped">
      <thead>
        <tr>
          <th scope="col">ID</th>
          <th scope="col">Location</th>
          <th scope="col">End User</th>
          <th scope="col">Order Number</th>
          <th scope="col">Date</th>
          <th scope="col">Application</th>
          <th scope="col">Service Tech</th>
          <th scope="col">Department</th>
          <th scope="col">Hours</th>
          <th scope="col">Travel Hours</th>
          <th scope="col">Contact Name</th>
          <th scope="col">Reason</th>
        </tr>
      </thead>
      <tbody>
        <tr
          v-for="row in serviceEntries"
          :key="row.id"
          @click="alertID(row.id)"
        >
          <th scope="row">{{ row.id }}</th>
          <td>{{ row.location }}</td>
          <td>{{ row.end_user }}</td>
          <td>{{ row.order_number }}</td>
          <td>{{ row.date }}</td>
          <td>{{ row.application }}</td>
          <td>{{ row.service_tech }}</td>
          <td>{{ row.department }}</td>
          <td>{{ row.hours }}</td>
          <td>{{ row.travel_hours }}</td>
          <td>{{ row.contact_name }}</td>
          <td>{{ row.reason }}</td>
          <a
            href="/delete/{{this.id}}"
            type="button"
            class="btn btn-light btn-small"
            onclick="event.stopPropagation(); return confirm('Are you sure you want to delete this entry?');"
            ><i class="bi bi-trash"></i> Delete</a
          >
        </tr>
      </tbody>
    </table>
  </div>
</template>

<script>
export default {
  name: "ServiceTable",
  computed: {
    serviceEntries() {
      return this.$store.state.serviceEntries;
       
    },
  },
  methods: {
    alertID(id) {
      this.$router.push({
        path: `/modify/${id}`,
      });
    },
  },
};
</script> 

唯一的删除调用;在我的app.js中

代码语言:javascript
复制
app.delete("/api/service/:id", (req, res) => {
  // console.log("DELETE /api/user/" + req.params.id + " called");
  pool.query(
    "DELETE FROM `master` WHERE id = ?",
    [req.params.id],
    function (error, results, fields) {
      if (error) res.json(error);
      else res.json(results);
    }
  );
});

我可能需要为删除添加一个app.post吗?

EN

回答 1

Stack Overflow用户

发布于 2021-12-28 19:24:48

a标签正在使用GET-request,您需要删除-请求。使用button和一个处理程序,您可以在其中使用一些包(如axiosgot )来发出这样的请求(以及其他GET、POST、PUT)。

代码语言:javascript
复制
<button
  class="btn btn-light btn-small"
  onclick="onDelete">
  <i class="bi bi-trash"></i>
  Delete
</button>
代码语言:javascript
复制
<script>
import axios from 'axios';

export default {
  methods: {
    async onDelete() {
      if(!confirm('Are you sure you want to delete this entry?') {
        return
      }
      await axios.delete(`/delete/${this.id}`);
    },
    alertID(id) {
      this.$router.push({
        path: `/modify/${id}`,
      });
    },
  },
};
</script> 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70511141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档