Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 在Vuejs和PHP中一次推送和插入_Vue.js_Axios - Fatal编程技术网

Vue.js 在Vuejs和PHP中一次推送和插入

Vue.js 在Vuejs和PHP中一次推送和插入,vue.js,axios,Vue.js,Axios,我想在数组中推送值。它将立即显示值。不需要刷新整个页面 app.todoList.push(this.todo) 有了这条线,我就做到了 同时,我想将这个值插入数据库。问题就在这里。不同的是,它们工作得非常完美。但这是个问题 这就是问题所在 数据: 提交表格: <form class="w-100" @submit="createTodo"> <div class="form-group w-100"> <input type="text" cl

我想在
数组中推送值。它将立即显示值。不需要刷新整个页面

app.todoList.push(this.todo)

有了这条线,我就做到了

同时,我想将这个值插入数据库。问题就在这里。不同的是,它们工作得非常完美。但这是个问题

这就是问题所在

数据:

提交表格:

<form class="w-100" @submit="createTodo">
   <div class="form-group w-100">
     <input type="text" class="form-control w-100" placeholder="What needs to be done? " v-model="todo">
   </div>
</form>

我该怎么做才能做到完美。

对于初学者来说,更标准的做法是在Axios promise回调中推动todo。这样,还可以在对象中包含从后端创建的ID


问题是什么还不完全清楚,如果问题是您得到了li但名称为空,那么问题是当您执行
app.todoList.push(this.todo)
时,您正在打印“todo\u title”。你需要做的是用
app.todoList.push({todo\u title:this.todo})

app.todoList.push({id:'',todo\u title:this.todo,todo\u status:0})键推送它。我如何从你的后端(
then
部分)在承诺中给出正确的id,您可以通过
然后(res=>res.data)
从后端访问响应,并提供您的后端返回创建的对象,例如
{id:1,todo_title:'title',todo_status:0}
您将能够从该响应获取id
.then(res=>{app.todoList.push(res.data)})
或者您可能只是从后端获取id,然后您必须执行更详细的操作:
then(res=>{app.todoList.push({id:res.data.id,todo\u title:this.todo})
这一切都取决于您的后端
<form class="w-100" @submit="createTodo">
   <div class="form-group w-100">
     <input type="text" class="form-control w-100" placeholder="What needs to be done? " v-model="todo">
   </div>
</form>
<ul>
  <li v-for="todo in todoList">
    {{ todo.todo_title }}
  </li>
</ul>
createTodo(e) {
  // Pushing dot only
  app.todoList.push(this.todo)
  let formData = new FormData();
  formData.append('todo_title', this.todo)

  axios({
       method: 'POST',
       url: 'api/todos.php',
       data: formData
  }).then(function(res){
  }).catch(function(res){
    console.log(res)
  });
  this.todo = null
  e.preventDefault();
}