2016-07-06 137 views
2

人我剛接觸laravel和我有一個問題...阿賈克斯與jQuery在Laravel 5.0

我有我想要使用jQuery在數據庫中找到信息的問題告訴他們:

我有一個名爲「create.blade.php」

@extends('admin.usersprofile') 

@section('content') 
    <div class="container"> 
     <div class="row"> 
      <div class="col-md-10 col-md-offset-1"> 
       <div class="panel panel-default"> 
        <div class="panel-heading">Nuevo Perfil de Usuario </div> 

        <div class="panel-body"> 
         {!! Form::open(['route'=>'admin.profile.store','method'=>'POST','class'=>'']) !!} 

          <div class="form-group"> 
           {!! Form::label('email','Correo electronico') !!} 
          </div> 
          <div class="form-group"> 
           {!! Form::text('email',null,['class'=>'form-consult','placeholder'=>'Por favor ingrese su email']) !!} 
           <input type="button" class="btn btn-primary" name="consultar" id="consultar" value="Consultar"> 
          </div> 
         <div class="form-group"> 
          {!! Form::label('first_name','Genero') !!} 
          {!! Form::select('gender',[''=>'Seleccion un genero','M'=>'Masculino','F'=>'Femenino'],null,['class'=>'form-control']) !!} 
         </div> 
         <div class="form-group"> 
          {!! Form::label('gender','Genero') !!} 
          {!! Form::select('gender',[''=>'Seleccion un genero','M'=>'Masculino','F'=>'Femenino'],null,['class'=>'form-control']) !!} 
         </div> 
          <div class="form-group"> 
           {!! Form::label('twitter','Twitter') !!} 
           {!! Form::text('twitter',null,['class'=>'form-control','placeholder'=>'Por favor ingrese tu usuario twitter']) !!} 
          </div> 
          <div class="form-group"> 
           {!! Form::label('website','Pagina Web o Blog') !!} 
           {!! Form::text('website',null,['class'=>'form-control','placeholder'=>'Por favor Ingresa la URL de tu sitio web']) !!} 
          </div> 
         <div class="form-group"> 
          {!! Form::label('birthdate','Fecha de nacimiento') !!} 
          {!! Form::text('birthdate',null,['class'=>'form-control','placeholder'=>'Por favor Ingresa tu fecha de nacimiento']) !!} 
         </div> 
         <div class="form-group"> 
          {!! Form::label('bio','Sobre mi') !!} 
          {!! Form::textarea('birthdate',null,['class'=>'form-control','placeholder'=>'Describe aqui algo sobre ti']) !!} 
         </div> 
          <button type="submit" class="btn btn-default">Guardar Perfil</button> 
         {!! Form::close() !!} 

        </div> 

       </div> 
      </div> 
     </div> 
    </div> 
@endsection 

我有我的路線被稱爲「個人資料」,如果你能看到這個目錄中稱爲管理形式:

Route::group(['prefix' => 'admin', 'namespace' => '\Admin'],function(){ 

    Route::resource('profile','UsersProfileController'); 
    Route::post('test','[email protected]'); 

}); 

在這裏,司機被稱爲 「UsersProfile控制器」:

public function consultar() 
    { 

     if(Request::ajax()) 
     { 
      $json['nombre']=""; 
      $json['twitter']=""; 
      $correo=Input::get('email'); 
      $result= User::orderBy('first_name', 'ASC') 
       ->leftJoin('user_profiles', 'users.id', '=', 'user_profiles.user_id') 
       ->where('email', '=', $correo) 
       ->get(); 
      foreach ($result as $res) 
      { 
       $json['nombre']=$res->full_name; 
       $json['twitter']=$res->twitter; 

      } 
      return json_encode($json); 

     } 


    } 

最後,我有我的Jquery:

$(document).ready(function(){ 

    $("#consultar").click(function(){ 
     var correo=$("#email").val(); 
     var llave=$('input[name=_token]').val(); 

     $.ajax 
     ({ 
      url:'test', 
      type:'post', 
      dataType:'json', 
      data:{'email':correo,'_token': llave}, 


      success: function (data) 
      { 
       var nombre=data.nombre; 
       var twitter=data.twitter; 

       alert(nombre); 
       alert(twitter); 
      } 


     }); 
    }); 
}); 

的問題是,當我跑這就是讓我想起:

RouteCollection.php中的MethodNotAllowedHttpException at RouteCollection-> methodNotAllowed(array('GET','HEAD','PUT','PATCH','DELETE'))

現在,如果我檢查我的路線,你可以看到,測試路線存在:

| | POST | admin/test | Course\Http\Controllers\Admin\[email protected] | 

如果他們知道一切都是完美的,但不明白爲什麼它不工作,並給了我這個消息MethodNotAllowedHttpException

我希望我能展示正確的道路,而我沒有看到......謝謝。

回答

1

它看起來像你的路線是admin/test,但你的AJAX請求只是去test

+0

你好謝謝回答,我明白你的意思,但路線是很好因爲文件「路由」「測試」路徑在前綴管理路徑看起來當它生成的POST: 「http://127.0.0.1/Course1.1/public/admin/profile/test」 如果我更改文件,並把AJAX管理員/測試是我們將被放置: 「http://127.0.0.1/Course1.1/public/admin/profile/admin/test」 –

+0

夠公平的,但它看起來像我對你的問題的答案是正確的 - 只需要調整正確的路徑。祝你好運! – swatkins

0

問題解決了我的...

的問題是,在AJAX的路線一直以爲:

url: 'test' 

,但在瀏覽器的路徑一直以爲:

http://127.0.0.1/Course%201.1/public/admin/profile/create

"admin/profile/create" 

我需要走出「配置文件」目錄,以便在我的AJAX:

url:'../test' 

這是所有