为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PIPIONE 2022-06-09 18:26:00
我很想共享相同的表单来存储/更新 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>知道如何让我解决这个问题吗?
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

您可以包含要更新的记录的 ID,并检查它是否在您的控制器中。如果没有,您可以创建一个新记录。


更新


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

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

          @csrf

          // only on update form

          <input type="hidden" name="technician_id" value="{{ $technician->id }}">

          @include('technician.form')

      </form>

</div>

然后在你的控制器中:


if ($request->input('technician_id'))

{

    // Update code

} else {

    // Create new code

}

更新 2


这就是我的想法:https ://codepen.io/205media/pen/abOxXzB


只是在更新时而不是在创建新记录时附加技术人员 ID 的隐藏输入。


查看完整回答
反对 回复 2022-06-09
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

在索引文件中,我有一个以这种方式显示的技术人员列表


@foreach ($technicians as $technician)

              <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>  {{$technician->nome}} {{$technician->cognome}}</a></li>

        @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">

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

    @csrf

  @include('technician.form')

</div>

在我的 js 文件中,我有一些功能:


openForm() -> 重置字段,设置按钮并显示隐藏的 div


tecAdd() -> 执行 ajax 调用,存储内容并将结果附加到索引文件中的 ul 上


tecShow(id) -> 填写来自基础的表单数据


tecEdit(id) -> 仍在处理它,但它应该更新记录


查看完整回答
反对 回复 2022-06-09
  • 2 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信