【问题标题】:Laravel user editLaravel 用户编辑
【发布时间】:2017-08-16 09:19:33
【问题描述】:

我有来自 DB 的用户详细信息,并使用带有编辑按钮的刀片循环打印。现在我想要,如果我单击按钮,我需要为用户单击的按钮的用户详细信息。

我尝试使用隐藏输入归档 <input type="hidden" value="{{$user->email}}" name="email"> 在我的控制器中,我只是打印表单提交中的值。但我只得到最后一个用户。

见下文,希望你能理解..

<div class="content-wrapper">
    <div class="flex-center position-ref full-height">
        <form action="{!!url('/delete')!!}" method="post"> {!!csrf_field()!!}   
            <div class="table-responsive">
                <table class="table table-hover">
                    <thead>
                      <tr>
                        <th>ID</th>
                        <th>Name</th>
                        <th>Email</th>
                        <th>Role</th>
                      </tr>
                    </thead>
                    <tbody>
                   @foreach($users as $user)
                      <tr>
                        <td>{{$user->id}}</td>
                        <td>{{$user->name}}</td>
                        <td>{{$user->email}}</td>   <input type="hidden" value="{{$user->email}}" name="email">
                        <td>{{$user->role}}</td>
                        <td>
                            <div class="btn-group">
                              <button type="submit" class="btn btn-primary btn-sm" name="edit"  >Edit</button>
                              <button type="submit" class="btn btn-primary btn-sm" name="delete"    >Delete</button>
                              <button type="submit" class="btn btn-primary btn-sm" name="make"  >Make Admin</button>
                            </div>
                        </td>
                      </tr>
                    @endforeach
                </tbody>
                </table>
            </div>  
        </form>     
    </div>
</div>  

【问题讨论】:

  • 放控制器代码

标签: php laravel laravel-blade


【解决方案1】:

假设您想在单击编辑按钮时转到包含用户详细信息的编辑页面。

<a href="{{ route('your_route_name',$user->id) }}" class="test-btn btn btn-primary btn-sm">Edit</a>

【讨论】:

    【解决方案2】:

    我认为这是因为您对所有用户的隐藏字段都使用了相同的名称“电子邮件”。它被覆盖了,因为 form 是相同的。
    相反,在循环中添加form 标签并删除表之前的标签。

    @foreach($users as $user)
        <form action="{!!url('/delete')!!}" method="post"> {!!csrf_field()!!}
          <tr>
            <td>{{$user->id}}</td>
            <td>{{$user->name}}</td>
            <td>{{$user->email}}</td>   <input type="hidden" value="{{$user->email}}" name="email">
            <td>{{$user->role}}</td>
            <td>
                <div class="btn-group">
                  <button type="submit" class="btn btn-primary btn-sm" name="edit"  >Edit</button>
                  <button type="submit" class="btn btn-primary btn-sm" name="delete"    >Delete</button>
                  <button type="submit" class="btn btn-primary btn-sm" name="make"  >Make Admin</button>
            </div>
            </td>
          </tr>
        </form>
    @endforeach
    

    或者,您可以在循环之外放置一个隐藏的电子邮件字段,并在提交之前使用 JS 为其赋值。

    第 1 步:将数据属性 (data-email) 添加到您的按钮以获取电子邮件。还要添加一个通用类名来捕获点击事件。 (见JS部分)

    <button type="button" class="test-btn btn btn-primary btn-sm" name="edit"  data-email="{{$user->email}}" >Edit</button>
    <button type="button" class="test-btn btn btn-primary btn-sm" name="delete" data-email="{{$user->email}}"  >Delete</button>
    <button type="button" class="test-btn btn btn-primary btn-sm" name="make"  data-email="{{$user->email}}" >Make Admin</button>
    

    第 2 步:将 email 隐藏字段移到循环外,值为空白。

    <form action="{!!url('/delete')!!}" method="post" id="test-form"> {!!csrf_field()!!} 
    <input type="hidden" value="" name="email" id="email">
    

    第3步:添加JS来捕获按钮的点击事件,并将点击按钮的电子邮件的值分配给电子邮件文本字段。

    $(".test-btn ").on("click",function(e){
        //assign the email value from button to variable
        email = $(this).attr(data-email);
    
        //assign the email value to email hidden field
        $("#email").value(email);
    
        //submit the form
        $("#test-form").submit();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-03
      • 2015-06-23
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 2018-01-05
      • 2018-05-09
      • 1970-01-01
      相关资源
      最近更新 更多