微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Vue表单提交两次或一次并为空

如何解决Vue表单提交两次或一次并为空

我是 javascript 和 Vue 的新手,我使用 CoreUI Vue 和 js 制作了这个简单的表单,并在 Postgresql 上提交了数据。

代码中,如果我使用 v-on:submit="postdata" 它提交一次并且为空,如果我使用 v-on:submit.prevent="postdata" 它提交两次,第一次为空,第二次为正确。

请帮助我被困了很多天我找不到问题,

<template>
  <div>
    <CCard>
      <CCardHeader>
        <slot name="header"> <CIcon name="cibCcVisa" /> {{ caption }} </slot>
      </CCardHeader>
      <CForm id="myforma" v-on:submit="postdata">
        <CCardBody>
          <CRow>
            <CCol>
              <CInput name="title" label="title" placeholder="Enter Title" v-model="posts.title" id="title" />
            </CCol>
          </CRow>
          <CRow>
            <CCol>
              <CInput label="year" type="date" v-model="posts.year" name="year" />
            </CCol>
          </CRow>

          <CRow>
            <CCol>
              <CInput name="writer" label="writer" placeholder="Enter the writer" :v-model="posts.writer" />
            </CCol>
          </CRow>
          <CRow>
            <CCol sm="12">
              <CInput name="description" label="description" placeholder="Write the description" v-model="posts.description" />
            </CCol>
          </CRow>

          <CRow>
            <CCol lg="6">
              <CSelect label="type" name="type" :options="['1.Books','2.Comics','3.NOvels','4.Writings']" :value.sync="posts.type" />
            </CCol>
          </CRow>
        </CCardBody>

        <CCardFooter>
          <CButton type="submit" size="sm" color="primary"><CIcon name="cil-check-circle" /> Submit</CButton>
          <CButton type="reset" size="sm" color="danger"><CIcon name="cil-ban" /> Reset</CButton>
        </CCardFooter>
      </CForm>
    </CCard>
  </div>
</template>

<script>
import axios from 'axios'

export default {
  name: 'forma',data(){
    return{
      posts: {
        title: '',year :'',writer:null,description:null,type: '1.Books'
      },}
  },props: {
    caption: {
      default: 'Thanasis Form'
    }
  },methods: {
    postdata() {
      axios.post('http://localhost/post.PHP',this.posts).then((response) => {this.posts= response.data;
      console.log(response.data)});
      console.log(this.posts);
    }
  }
}
</script>

<style></style>
<?PHP 
include "db.PHP";   

$received_data = json_decode(file_get_contents("PHP://input"),true);

$table= $received_data['title'];
$wri=$received_data['writer'];
    

$result=pg_query($connection,"INSERT INTO tablet (title) VALUES (' $table')");
?>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。