将日期插入数据库后如何在vue js中显示成功消息

作为MR.G

我有一个工作正常的表单,可以在表单验证后使用axios将数据插入数据库。将数据插入数据库后,我只是在努力显示成功消息。将数据发送到数据库后,如何隐藏表单并在同一部分显示成功消息?

这是我完美的工作代码

<template>
  <b-container>
    <div class="update-info">
      <div class="feature-text myinv-title">
        <h5 class="title title-sm">Update your information</h5>
      </div>
    <div>
      <form @submit.prevent="submit">
        <p v-if="errors.length">
          <b>Please fill in all the fields</b>
          <ul>
            <li v-for="error in errors" class="alert alert-danger">{{ error }}</li>
          </ul>
        </p>

         <div class="form-row">
           <div class="form-group col-md-3">
             <label for="trx number">TRX No</label>
             <input
               type="text"
               name="trx Number"
               v-model="newUser.trx"
               class="form-control trx-address-nooverflow"
               placeholder="Copy paste your TRX no"
             />
             <b-form-text id="input-formatter-help">
              <a class="text-success">Your TRX address: {{trxNo}}</a>
             </b-form-text>
           </div>
           <div class="form-group col-md-3">
             <label for="name">Name</label>
             <input
               type="text"
               name="name"
               v-model="newUser.name"
               class="form-control"
               placeholder="Enter you name"
             />
           </div>
           <div class="form-group col-md-3">
             <label for="email">Email</label>
             <input
               type="text"
               name="email"
               v-model="newUser.email"
               class="form-control"
               placeholder="Enter valid email address"
             />
           </div>
           <div class="form-group col-md-3">
             <label for="country">Country</label>
             <country-select
               id="Country"
               v-model="newUser.country"
               :country="newUser.country"
               topCountry="US"
               class="form-control"
             />
           </div>
           <div class="form-group col-md-3">
             <label for="mobile">Mobile No</label>
             <input
               id="mobile"
               class="form-control"
               v-model="newUser.mobile_no"
               type="text"
               placeholder="Enter your mobile no."
             />
             <b-form-text id="input-formatter-help">
              Please enter valid phone number
             </b-form-text>
           </div>

           <div class="form-group col-md-3">
             <div class="top-30">
               <input type="submit" class="btn btn-btn btn-grad btn-submit" />
             </div>
           </div>
         </div>
        </form>
    </div>

    </div>
  </b-container>
</template>

这是我的Vue js代码

<script>
import axios from 'axios'

export default{
  data(){
    return{
      errorMessage: "",
      successMessage: "",
      text: "success",
      errors: [],
      users: [],
      newUser: {trx: "", name: "", country: "", email: "", mobile_no: ""}
    }
  },
  computed: {
    trxNo: function() {
      return this.$store.state.myAddress;
    }
  },
  mounted: function(){
    this.getAllUsers();
  },
  methods:{
    getAllUsers: function(){
      axios.get('https://onex.tronpayer.com/api/update-info-form.php?action=read', { crossdomain: true })
      .then((response) => {
        if(response.data.error){
          this.errorMessage = response.data.message;
        }else{
          this.users = response.data.users;
        }
        });
    },

    submit(){
      this.checkForm()
      if(!this.errors.length) {

      var formData = this.toFormData(this.newUser);
      axios.post('https://onex.tronpayer.com/api/update-info-form.php?action=update', formData, { crossdomain: true })
      .then((response) => {
        this.newUser = {trx: "", name: "", country: "", email: "", mobile_no: ""};
        if(response.data.error){
          this.errorMessage = response.data.message;
        }else{
          this.getAllUsers();
        }
        });
      }
    },

    toFormData: function(obj){
      var form_data = new FormData();
      for(var key in obj){
        form_data.append(key, obj[key]);
      }
      return form_data;
    },
    clearMessage: function(){
      this.errorMessage = "";
      this.successMessage = "";
    },
    //validation
    checkForm: function (e) {
      this.errors = [];

      if (!this.newUser.trx) {
        this.errors.push("Trx Number Required.");
      }
      if (!this.newUser.name) {
        this.errors.push("Name Required.");
      }
      if (!this.newUser.country) {
        this.errors.push("Country Required.");
      }
      if (!this.newUser.email) {
        this.errors.push('Email Required.');
      } else if (!this.validEmail(this.newUser.email)) {
        this.errors.push('Valid Email Address Required.');
      }
      if (!this.newUser.mobile_no) {
        this.errors.push("Mobile Number Required.");
      }

      if (!this.errors.length) {
        return true;
      }

    },

    validEmail: function (email) {
      var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
      return re.test(email);
    }
  }
}
</script>


米歇尔福克斯

您可以使用v-if条件渲染来禁用表单并显示消息。https://vuejs.org/v2/guide/conditional.html

只需创建一个类似的变量savingSuccessful: false,然后在您的ajax请求成功时将其设置为true即可。

现在以您的形式使用它,例如

 <form @submit.prevent="submit" v-if="!savingSuccessful">

这意味着您的表单将一直显示,直到您的变量为true为止。

对于成功消息,您可以创建以下内容:

<div class="success" v-if="savingSuccessful"> 
    {{ this.text }} 
</div>

当变量为true时,将显示您的消息。

这是一个JSFiddle:https ://jsfiddle.net/MichelleFuchs/nydruxzw/2/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在JavaEE中的数据库中插入日期?

将数据插入数据库后,无法在 Laravel 中显示数据库中的数据

如何将文本框中的数据和日期/时间插入Access数据库?

在 HTML 页面中单击“保存”后如何显示成功消息

POST后如何修复空白页以将数据插入Java EE中的数据库

如何在 Oracle 数据库中插入日期和时间?

如何在数据库mysql中插入当前日期

如何将包含顺序日期的行插入到mysql数据库中

如何将日期和时间插入到数据库中?

如何使用 Python 将日期时间插入到 sqlite3 数据库中?

使用php在数据库中插入数组项时,避免两次显示成功或失败消息

在JavaScript中成功验证后,我无法显示任何消息

如何在Play Framework中使用Ebean将初始数据加载/插入数据库中?

如何在Liferay 6.2中将数据插入数据库?

如何在Codeigniter中循环将数据插入数据库?

成功插入数据库后抛出消息,如果不成功则返回错误消息

成功注册后显示消息

如果在 console.log 中成功获取数据,如何显示成功消息?

如何在标签“ a”中从数据库插入值以将属性href

如何在选择日期后不单击任何按钮从数据库中显示输入选择的值?

插入数据库后显示主键

即使显示成功消息,C#MDF数据库也不会插入数据

Laravel - 如何在数据库中插入 json

PHP如何在数据库中插入NULL?

如何在数据库中插入Json对象

如何在Codeigniter的数据库中插入数组?

如何在sqlite数据库(表)中插入图像?

如何在多线程Java中插入数据库

如何在数据库中插入$ _POST值