【发布时间】:2015-12-20 14:27:29
【问题描述】:
我是 ajax 和 laravel 5 的新手
我在点击链接时遇到了一些关于传递数据的问题,我会解释一下我想要实现的目标。
这里是我的 html 代码:
//this is the div that i want append with data foreach
<div id="warung-plain">
</div>
//and those code is links that when i click it will send ajax data
@foreach($kategoriwarung_all as $kategoriwarung)
<li style="padding:5px 0px">
<a class="kategori-warung" style="text-decoration:none;color:#5ca4a9" href="#">
{{ $kategoriwarung->nama }}
</a>
</li>
@endforeach
//this is a html code that i want plain in id="warung-plain" after get the foreach data
<div class="row" style="margin:3% 0px 0px 0px" id="">
@foreach($warung_has_kategoriwarungs[$category_fix] as $Warung)
<div class="col-md-6" style="margin-bottom:0px;min-height:100px">
<ul class="no-padding" style="display:inline-flex;list-style-type: none;width:100%;">
<li>
<img class="img-circle" src="assets/gambar_contoh/foto.jpg" style="height:60px;width:60px">
</li>
<li style="padding:0px 0px 0px 15px ;width:100%">
<p class="heading-toko-font" style="font-size:18px;color:#606060">{{ $Warung->Warung->nama }}</p>
<span class="alamat-toko-font" style="font-size:14px;color:#BCBCBC"><?php echo $Warung['Warung']['alamat']; ?></span>
</li>
</ul>
</div>
@endforeach
</div>
这是我的 js
<script>
$(document).ready(function(){
$(".kategori-warung").click(function(e){
e.preventDefault();
var category = $(e.target).text();
jQuery.ajax({
type: "POST",
//after passing data category then system will append
//html code to id="warung-plain"
url: "/ambil_kategori/{category}",
data: {category: category},
success: function(res) {
$('#warung-plain').load("/warung_plain/{category}");
}
});
$(".warung").fadeIn("slow").show();
$("#nama-kategori").html(category);
$(".warung-semua").hide();
});
});
</script>
这是我的控制器:
public function index()
{
$Warungs_all = Warung::paginate(10);
$kategoriwarung_all = kategoriwarung::all();
return view('index' , compact('kategoriwarung_all' , 'Warungs_all' ));
}
public function get_warung_by_category($category){
$category_fix = $category;
$kategoriwarung_all = kategoriwarung::all();
foreach($kategoriwarung_all as $kategoriwarung){
$kategoriwarung->nama;
$kategoriwarung->id;
$warung_has_kategoriwarungs[$kategoriwarung->nama] = warung_has_kategoriwarung::where('kategoriwarung_id' , '=' , $kategoriwarung->id)->with(['Warung','kategoriwarung'])->paginate(10);
}
return view('daftar_warung' , compact('warung_has_kategoriwarungs' ,'category_fix'));
}
public function warung_plain($category , IndexController $objek){
$objek->get_warung_by_category($category);
}
最后这是我的路线:
Route::get('/', 'IndexController@index');
Route::post('/ambil_kategori/{category}', 'IndexController@get_warung_by_category');
Route::get('/warung_plain/{category}', 'IndexController@warung_plain');
【问题讨论】:
-
你还没有解释问题是什么?您是看到异常还是它不起作用?
-
它只是不起作用,也许我在 laravel 5 中使用路由时出错了,但我不知道为什么
-
问题是我点击链接后 div id="warung-plain" 仍然为空。
-
好的,所以你需要检查你的控制台 (F12) 和 Laravel 日志看看发生了什么
-
好吧,伙计,它说“POST localhost/ambil_kategori/%7Bcategory%7D 404(未找到)”,是的,我知道那是错误的,但我不知道在 laravel 中填充 ajax url 的正确方法-_-
标签: php jquery html ajax laravel-5