mercredi 23 septembre 2015

post ajax data with click a link on laravel 5

i'm newbie in ajax and laravel 5

i have some problem about passing data when i click a link, i will explain you what i want achieve.

here my html code :

//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                        

here is my 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>

this is my controller

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);
}

and last this is my route

Route::get('/', 'IndexController@index');
Route::post('/ambil_kategori/{category}',    'IndexController@get_warung_by_category');
Route::get('/warung_plain/{category}', 'IndexController@warung_plain');



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire