在循环内输入POST数据

时间:2017-12-28 15:01:58

标签: laravel

我有很多来自数据库的产品。我用循环显示它们。当用户点击“更多”时,我想显示其详细信息。问题是,例如:我有四个产品A,B,C和D.当用户点击A的详细信息时,它会显示D的详细信息或随机显示。我怎样才能解决这个问题?这是我的代码:

<form action="details" method="post" enctype="multipart/form-data">
@foreach($images as $image)
        <div class="card" >

          <div class="card-inside1" >
              <div class="center">
                <img class="card-img-top img-fluid" src="<?php echo asset('images').'/'.$image->image1 ?>" alt="Card image" >
              </div>

              <div class="card-body">
                <input type="text" name="imagename" value="{{$image->product_name}}"></input>
                  <button type="submit" value="Submit" name="more" class="btn btn-primary ">More</button>
              </div>
          </div>

         </div>
    @endforeach
</form>

路线

 Route::post("details",'UserController@detail');

控制器

 public function detail(Request $req)
 {
  $productname = $req->input('imagename');
  return $productname;
 }

2 个答案:

答案 0 :(得分:0)

无需使用表单来完成您想要的任务。

@foreach($images as $image)
  <div class="card" >
    <div class="card-inside1" >
        <div class="center">
          <img clas="card-img-top img-fluid" src="<?php echo asset('images').'/'.$image->image1 ?>" alt="Card image" >
        </div>
        <div class="card-body">
          <input type="text" name="imagename" value="{{$image->product_name}}"></input>
            <a href="{{url('details/'.$image->product_name)}}" class="btn btn-primary ">More</a>
        </div>
    </div>
  </div>
@endforeach

路线:

Route::get("details/{imagename}",'UserController@detail');

控制器:

public function detail(Request $req)
{
   $productname = $req->imagename;
   return $productname;
}

<强>更新

之所以选择最后一个产品是因为您通过表单发送所有产品。它需要发送的最后一个,而不是你点击的那个。

答案 1 :(得分:0)

视图 @foreach($images as $image) <a href="{{ route('product.show', $product->id) }}">{{ $product->name }}</a> @endforeach

web.php

Route::get("details/{id}",'ProductController@show')->name('product.show');

ProductController.php

public function show($id)
{
    $product = Product::find($id);
    return $product
}