javascript - 在 PHP Laravel 中将变量从 foreach 循环传递到我的 Controller

标签 javascript php html laravel-5

这是我的代码的一部分

            @foreach($fields as $field)
            <div class="flex-row d-sm-inline-flex w-100 mt-1" dir="rtl">
                <input type="text" class="form-control w-25" name="{{$field->id}}field" id="{{$field->id}}field"  aria-describedby="emailHelp" placeholder="{{$field->name}}" />
                <input type="text" class="form-control w-50" name="{{$field->id}}description" id="{{$field->id}}description"  aria-describedby="emailHelp" placeholder="{{$field->description}}" />

                <button type="submit" class="btn btn-primary" name="submitbutton" id="del-field" value="del-field">پاک کردن فیلد</button>
            </div>

            @endforeach

这部分展示了我产品的各个领域。 我为每个字段添加一个按钮来删除该字段。问题是,在获得该字段的 id 之前我无法删除该字段,那么如何从 foreach 循环获取 id 到我的 Controller ?

我的完整代码

<div class="w-100">
  <form method="post" action="{{route('ProductEdit', ['id' => $products->id])}}" enctype="multipart/form-data">
  {{ csrf_field() }}
    <div class="album">
        <div class="slider">
                             <div class="slide slide1 mySlides">
                                 <div>
                                      <img  src="/image/products/{{$products->id}}product1.jpg"/>
                                 </div>
                                 <div class="caption">
                                     <input type="file" class="form-control" name="image1" id="image1"  aria-describedby="emailHelp" style="background-color: #7f7f7f; color: #fff; height: 3em; "/>
                                     <button type="submit" name="submitbutton" class="btn" value="save1" style="width: 100%; height: 100%;">تغییر عکس اول</button>
                                 </div>
                             </div>
                             <div class="slide slide2 mySlides">
                                 <div>
                                      <img  src="/image/products/{{$products->id}}product2.jpg"/>
                                 </div>
                                 <div class="caption">
                                     <input type="file" class="form-control" name="image2" id="image2"  aria-describedby="emailHelp" style="background-color: #7f7f7f; color: #fff; height: 3em; "/>
                                     <button type="submit" name="submitbutton" class="btn" value="save2" style="width: 100%; height: 100%;">تغییر عکس دوم</button>
                                 </div>
                             </div>
                             <div class="slide slide3 mySlides">
                                 <div>
                                      <img  src="/image/products/{{$products->id}}product3.jpg"/>
                                 </div>
                                 <div class="caption">
                                     <input type="file" class="form-control" name="image3" id="image3"  aria-describedby="emailHelp" style="background-color: #7f7f7f; color: #fff; height: 3em; "/>
                                     <button type="submit" name="submitbutton" class="btn" value="save3" style="width: 100%; height: 100%;">تغییر عکس سوم</button>
                                 </div>
                             </div>
   `    </div>
    </div>

      <button type="button" class="btn btn-primary" onclick="plusDivs(-1)">&#10094;</button>
      <button type="button" class="btn btn-primary" onclick="plusDivs(+1)">&#10095;</button>

      <div class="form-group mt-lg-5" dir="rtl">
        <label for ="description">توضیحات محصول</label>
        <textarea class="form-control" id="description" placeholder="Enter Your Message" maxlength="1000"></textarea>
      </div>
    <div>
        <div>
            @foreach($fields as $field)
            <div class="flex-row d-sm-inline-flex w-100 mt-1" dir="rtl">
                <input type="text" class="form-control w-25" name="{{$field->id}}field" id="{{$field->id}}field"  aria-describedby="emailHelp" placeholder="{{$field->name}}" />
                <input type="text" class="form-control w-50" name="{{$field->id}}description" id="{{$field->id}}description"  aria-describedby="emailHelp" placeholder="{{$field->description}}" />

                <button type="submit" class="btn btn-primary" name="submitbutton" id="del-field" value="del-field">پاک کردن فیلد</button>
            </div>

            @endforeach
        </div>
        <div>
           <button type="submit" class="btn btn-primary mt-5" name="submitbutton" value="add-field">اضافه کردن فیلد </button>
        </div>
    </div>
   </form>

   <script src="{{ asset('js/slider.js') }}" defer></script>
</div>

和我的 Controller

public function update(Request $request, $id)
{

    switch($request->input('submitbutton')) {

        case 'save1':

            $user = Auth::user();
            $products = Product::findOrFail($id);
            $destinationPath = public_path(). '/image/products/';

            $avatarName = $products->id . 'product1' . '.' . 'jpg';
            request()->image1->move($destinationPath, $avatarName);

            return Redirect::back();

            break;

        case 'save2':



            $user = Auth::user();
            $products = Product::findOrFail($id);
            $destinationPath = public_path(). '/image/products/';

            $avatarName = $products->id . 'product2' . '.' . 'jpg';
            request()->image2->move($destinationPath, $avatarName);

            return Redirect::back();

            break;

        case 'save3':


            $user = Auth::user();
            $products = Product::findOrFail($id);
            $destinationPath = public_path(). '/image/products/';

            $avatarName = $products->id . 'product3' . '.' . 'jpg';
            request()->image3->move($destinationPath, $avatarName);

            return Redirect::back();

            break;

        case 'add-field':

            $products = Product::findOrFail($id);
            $products->fields()->create();

            return Redirect::back();

            break;


        case 'del-field':



            return Redirect::back();

            break;

    }


}

最佳答案

<script>
            $(document).ready(function(){
                var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
                $("#del-field").click(function(){
                    $.ajax({
                        /* the route pointing to the update function */
                        url: '/',
                        type: 'POST',
                        /* send the csrf-token and the input to the controller */
                        data: {_token: CSRF_TOKEN, id:$(this).val()},
                        dataType: 'JSON',
                        /* remind that 'data' is the response of the Controller */
                        success: function (data) {

                        }
                    }); 
                });
           });    
</script>

关于javascript - 在 PHP Laravel 中将变量从 foreach 循环传递到我的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53263931/

相关文章:

javascript - 使用 Jasmine 测试 fixture 的 window.resize

php - 如何使用 HTML/PHP 防止 XSS?

php - 如何将 $_FILES 绑定(bind)到 Phalcon 表单?

javascript - 从控制台使用 javascript 填写并提交表单

javascript - 脚本标签——不链接(JS平台游戏)

javascript - 更改标题等于的 DIV 文本

javascript - 在 ajax 回调 jquery 中使用 $(this)

html - CSS div 宽度视觉上不准确

javascript - 有没有办法在 AngularJS 中强制重新加载递归 ng-include ?

php - MYSQL + PHP - 2 个 Mysql 表填充了 1-300 行。一张表有 298 个,另一张有 300 个。显示缺失值?