如何将“ id”值放在ajax网址中?

时间:2018-10-08 07:04:47

标签: ajax laravel-5 dropdown

我在编辑页面上有从属下拉列表选择,以编辑人员资料。选择的视图是这样的:

<div class="form-group">
          <div class="row">
            <div class="col-lg-3">
              <label for="kategori">Kategori:</label>
            </div>
            <div class="col-lg-4"> 
              <select name="kategori" class="form-control select2" style="width:250px">
                  <option value="">--- pilih ---</option>
                  @foreach ($categories as $key => $value)
                  <option value="{{ $key }}">{{ $value }}</option>
                  @endforeach
              </select>
            </div>
          </div>
        </div>
        <div class="form-group">
            <div class="row">
              <div class="col-lg-3">
                <label for="pangkat">Pangkat:</label>
              </div>
              <div class="col-lg-4"> 
                <select name="pangkat" class="form-control select2"style="width:250px">
                <option>--pilih--</option>
                </select>
              </div>
            </div>
        </div>

ajax脚本如下:

<script type="text/javascript">
jQuery(document).ready(function ()
{
        jQuery('select[name="kategori"]').on('change',function(){
           var CatID = jQuery(this).val();
           if(CatID)
           {
              jQuery.ajax({
                 url : '/edit_profil/{id}/getpangkat/' +CatID,
                 type : "GET",
                 dataType : "json",
                 success:function(data)
                 {
                    console.log(data);
                    jQuery('select[name="pangkat"]').empty();
                    jQuery.each(data, function(key,value){
                       $('select[name="pangkat"]').append('<option value="'+ key +'">'+ value +'</option>');
                    });
                 }
              });
           }
           else
           {
              $('select[name="pangkat"]').empty();
           }
        });
});
</script>

这是到编辑页面以及选择值的路由代码:

Route::get('/edit_profil/{id}', 'Modul\ProfilController@edit')->name('editProfil');

Route::get('edit_profil/{id}/getpangkat/','Modul\ProfilController@getpangkat');

编辑页面的控制器是:

$dataItemregistration = DB::table('itemregistrations')
                            ->join('sections', 'itemregistrations.sectionid', '=', 'sections.sectionid')
                            ->join('categories', 'itemregistrations.categoryid', '=', 'categories.categoryid')
                            ->join('sandaran', 'itemregistrations.sandarid', '=', 'sandaran.sandarid')
                            ->join('statusrumah', 'itemregistrations.statusrumahid', '=', 'statusrumah.statusrumahid')
                            ->join('bangsa', 'itemregistrations.bangsaid', '=', 'bangsa.bangsaid')
                            ->join('kahwin', 'itemregistrations.kahwinid', '=', 'kahwin.kahwinid')
                            ->join('agama', 'itemregistrations.agamaid', '=', 'agama.agamaid')
                            ->join('jantina', 'itemregistrations.jantinaid', '=', 'jantina.jantinaid')
                            ->join('negeri', 'itemregistrations.negeriid', '=', 'negeri.negeriid')
                            ->join('statuspro', 'itemregistrations.statusproid', '=', 'statuspro.statusproid')
                            ->join('statuspengundi', 'itemregistrations.statuspengundiid', '=', 'statuspengundi.statuspengundiid')
                            ->join('kategori_bank', 'itemregistrations.bankid', '=', 'kategori_bank.bankid')
                            ->join('operasi', 'itemregistrations.operasiid', '=', 'operasi.operasiid')
                            ->select('itemregistrations.*', 'sections.sectionname', 'categories.categoryname', 'sandaran.sandarname', 'statusrumah.status_rumah_semasa', 'bangsa.bangsaname','kahwin_status', 'agamaname', 'jantinaname', 'negeriname', 'statusproname', 'statusmengundi', 'bankname', 'operasiname')
                            ->where('itemregistrations.itemregistrationid', $id)
                            ->first();

$categories = DB::table('categories')->pluck("categoryname","CategoryID");

 return view('profil.edit', compact('dataItemregistration', 'categories', 'id'));

getpangkat的控制器是:

public function getpangkat($id) 
{        
    $operasi = DB::table("operasi")->where("CategoryID",$id)->pluck("operasiname","OperasiID");

    return json_encode($operasi);
}

由于URL路径,我在获取依赖下拉列表的值时遇到问题。编辑页面路径包含这样的人员ID,例如“ http://127.0.0.1:8000/edit_profil/194”,但我不知道如何在ajax调用中设置包含人员ID值的网址。

如何修改代码以获取依赖的下拉列表作品?

1 个答案:

答案 0 :(得分:1)

将ajax网址更改为此,因为您需要在id/edit_profil/之间传递/getpangkat/

url : 'edit_profil/{{ $id }}/getpangkat/' +CatID,

,在您的路由中,您还需要指定变量CatID

Route::get('edit_profil/{id}/getpangkat/{CatID}','Modul\ProfilController@getpangkat');

在您的函数中

public function getpangkat($id, $CatID) 
{        
$operasi = DB::table("operasi")->where("CategoryID",$CatID)->pluck("operasiname","OperasiID");

return json_encode($operasi);
}

希望有帮助!