我想使用相同的表单在 Laravel 中存储/更新

我很想共享相同的表单来存储/更新 Laravel AJAX 表单上的数据。所以我会根据用户想要执行的操作来更改表单方法。即存储方法:


<form method="post" action="{{action('TechnicianController@store')}}" id="formTec">

    @csrf

更新方法:


<form method="post" action="{{action('TechnicianController@store')}}" id="formTec">

    @csrf @method('PUT');

我有一个索引页,其中包含通过 Ajax 打开的表单


{{-- Form include  --}}

<div class="col-9" id="scheda" style="display:none">

  <form method="post" action="{{action('TechnicianController@store')}}" id="formTec">

    @csrf

  @include('technician.form')

</div>

知道如何让我解决这个问题吗?


PIPIONE
浏览 87回答 2
2回答

繁花如伊

您可以包含要更新的记录的 ID,并检查它是否在您的控制器中。如果没有,您可以创建一个新记录。更新<div class="col-9" id="scheda" style="display:none">&nbsp; &nbsp; &nbsp; <form method="post" action="{{action('TechnicianController@store')}}" id="formTec">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @csrf&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // only on update form&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="hidden" name="technician_id" value="{{ $technician->id }}">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @include('technician.form')&nbsp; &nbsp; &nbsp; </form></div>然后在你的控制器中:if ($request->input('technician_id')){&nbsp; &nbsp; // Update code} else {&nbsp; &nbsp; // Create new code}更新 2这就是我的想法:https ://codepen.io/205media/pen/abOxXzB只是在更新时而不是在创建新记录时附加技术人员 ID 的隐藏输入。

30秒到达战场

在索引文件中,我有一个以这种方式显示的技术人员列表@foreach ($technicians as $technician)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <li><i class="fa-li fa fa-square text-muted"></i><a href="#" onclick="event.preventDefault();tecShow({{ $technician->id }})"><small class="text-muted"># {{$technician->id}}</small>&nbsp; {{$technician->nome}} {{$technician->cognome}}</a></li>&nbsp; &nbsp; &nbsp; &nbsp; @endforeach我还有一个按钮来创建一个新的技术<a onclick="event.preventDefault();openTecForm()" href="" class="btn btn-outline-muted btn-sm text-secondary">还有一个隐藏的 div 来显示表单<div class="col-9" id="scheda" style="display:none">&nbsp; <form method="post" action="{{action('TechnicianController@store')}}" id="formTec">&nbsp; &nbsp; @csrf&nbsp; @include('technician.form')</div>在我的 js 文件中,我有一些功能:openForm() -> 重置字段,设置按钮并显示隐藏的 divtecAdd() -> 执行 ajax 调用,存储内容并将结果附加到索引文件中的 ul 上tecShow(id) -> 填写来自基础的表单数据tecEdit(id) -> 仍在处理它,但它应该更新记录
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript