Laravel 如何使用 ajax 将数据从控制器传递到模态对话

用户9155494

我有项目,每个项目都有相关项目,所以当我打开主页时,它会显示所有项目,当我想点击任何项目时,ajax 会将此项目 ID 传递给控制器​​以获取该项目的相关项目,问题是我想在模态对话框中显示相关项目,模态对话框现在将所有相关项目显示到所有项目而不是当前项目。我认为问题是因为在有foreach的主页中包含模态!希望你能帮助我解决这个问题

路线

Route::get('/',['as'=>'showItems','uses'=>'HomeController@getItem']);
Route::get('Get_relateditem',['as'=>'Get_relateditem','uses'=>'HomeController@getItem']);

阿贾克斯

$(function(){
$('.Item_root').on("click", function () {
var item_id = $(this).data('id');
 $.ajax({
    type:'get',
     url: '/',
       data: {
        '_token': $('input[name=_token]').val(),
       'item_id':item_id,                    
      },
    success:function(data){}
    }); 
   });
  });

控制器

 public function getItem(Request $request)
 { 
 $currentitemid =$request->item_id;
  $ritems = Relateditem::orderBy('id', 'asc')->where('ritemf_id','LIKE','%'.$currentitemid.'%')->with('items')->get()->groupBy('ritemf_id');

 $items = Item::orderBy('category_id', 'asc')->with('category')->get()->groupBy('category_id');

$categories = Category::orderBy('category_id', 'asc')->get();

 return view('home')->with('items',$items)->with('categories',$categories)->with('ritems',$ritems);
}
}

模态

@foreach($ritems as $item_id => $realtedItems)

 @foreach($realtedItems as $ritem)

  <div class="SuggestedItem_container">
 <label color="red" class="Checker_root Checker_red Checker_left">
      <input type="checkbox" class="Checker_input" value="on">
      <div class="SuggestedItem_nameContainer">
        <div>
     <span class="SuggestedItem_name">{{$ritem->riteml_id}}</span>

     <span class="SuggestedItem_price styles_small styles_base styles_spacing-base">+$3.95</span></div></div>

    <div class="SuggestedItem_description styles_small styles_base styles_spacing-base">
    <span class="SuggestedItem_category styles_bold">Appetizers</span>

    <span> · Edamame soybean pods harvested right before the beans begin to harden are lightly boiled and seasoned with sea salt.</span>
    </div>
  </label>
  </div>
 @endforeach
 @endforeach
侯赛因

修改路线:

Route::get('/','HomeController@getItem');
Route::get('/get_related_items/{id}','HomeController@getRelatedItems');

修改getItem以仅获取项目和类别:

public function getItem(Request $request)
{
    $items = Item::orderBy('category_id', 'asc')
      ->with('category')->get()
      ->groupBy('category_id');
    $categories = Category::orderBy('category_id', 'asc')->get();
    return view('home',['items' => $items,'categories' => $categories]);
}

获取单个商品 ID 的相关商品:

public function getRelatedItems(Request $request, $id)
{
    $ritems = Relateditem::orderBy('id', 'asc')
        ->where('ritemf_id',$id)
        ->with('items')
        ->get()
        ->groupBy('ritemf_id');
    return response()->json($ritems);

}

现在是 js 部分:

$(function(){
  $('.Item_root').on("click", function () {
    var item_id = $(this).data('id');
    $.ajax({
      type:'get',
      url: '/get_related_items/' + item_id,
      data: {
        '_token': $('input[name=_token]').val()
      },
      success:function(data){
        if(data && data.length){
          var con_el = $('.SuggestedItem_container');
          for(var i = 0; i < data.length;i++){
            var related_item_el = "<div class='related_item'><p>" + data[i].id + "</p></div>"
            con_el.append(related_item_el);
          }
        }else{
          console.log('no related items found');
        }
      }
    });
  });
});

这将插入所有相关项目 SuggestedItem_container

我没有编写视图模板,因为这部分很简单,并且请注意,我只包含了相关的项目 ID 作为示例,因为我不知道该项目有哪些字段。我希望这可以帮助你

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过Post方法将数据从Ajax传递到laravel 5.2控制器

如何在API中使用Ajax将Laravel表单数据发布到控制器

使用 Ajax 将数据从视图传递到控制器

Laravel-使用Ajax将2个变量从视图传递到控制器

Laravel使用Ajax将数据传递给控制器

如何从控制器传递数据到视图激活模态。(Laravel)

如何使用Ajax将多个返回值传递给laravel控制器

如何使用ajax将引导模式值传递给laravel控制器?

如何使用ajax请求将html表传递给laravel控制器?

通过ajax onchange事件将数据从laravel视图传递到控制器

如何将 id 从 ajax 传递给控制器 - Laravel & Ajax

如何使用Ajax将数据从视图发送到控制器Laravel?

如何将列表从Ajax传递到控制器

如何将数据从Ajax JavaScript传递到MVC控制器?

使用Ajax将表单数据传递到控制器方法

如何将变量数组从laravel控制器传递给我的Ajax函数

Laravel 如何将数据从控制器传递到刀片

laravel 5如何将数据传递到控制器进行建模

如何将数据从模型传递到 Laravel 中的控制器

如何将数据从控制器传递到 Laravel 中查看

无法从 AJAX 请求获取数据到 Laravel 控制器并使用它?

如何将模态提交给控制器并在模态对话框中关闭编辑后刷新ajax

如何使用ajax将数据属性发送到laravel控制器(存储在数据库中)?

使用Laravel控制器从$ .ajax呼叫接收数据

在Laravel中使用Ajax将数据发送到控制器

如何使用角度ui模态将数据传递到控制器?

Laravel 使用控制器参数与请求将数据传递给控制器

如何使用ajax将数组对象从Javascript传递到c#控制器

将json从ajax传递给laravel控制器