2016-07-06 7 views
2

Leute, die ich neu in Laravel und ich habe ein Problem ...Ajax mit Jquery in Laravel 5,0

Ich habe eine Frage Ich versuche, Jquery zu verwenden, um Informationen in der Datenbank zu finden zeigen sie:

ich habe meine Form mit dem Namen „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 

ich meine Route „Profil“ genannt haben, wenn Sie diese in einem Verzeichnis namens Admin sehen:

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

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

}); 

Hier wird der Fahrer genannt wird "UsersProfile Controller":

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

     } 


    } 

Endlich habe ich meine 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); 
      } 


     }); 
    }); 
}); 

Das Problem ist, dass wenn ich laufe das ist, was bringt mich zurück:

MethodNotAllowedHttpException in RouteCollection.php bei RouteCollection-> methodNotAllowed (Array ('GET', 'HEAD', 'PUT', 'PATCH', 'LÖSCHEN'))

Jetzt 10

wenn ich meine Routen überprüfen können Sie sehen, dass die Teststrecke vorhanden ist:

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

Wenn sie alles wissen, ist perfekt, aber nicht verstehen, warum es nicht funktioniert und gibt mir diese Nachricht MethodNotAllowedHttpException

I Ich hoffe, ich kann den richtigen Weg zeigen, und ich sehe nicht ... danke.

Antwort

1

Es sieht aus wie Sie Ihre Route admin/test ist, aber Ihr AJAX-Request geht nur um zu test

+0

Hallo Danke für die Beantwortung war, ich verstehe Ihren Standpunkt, aber die Strecke ist gut Da die Datei "Routen" die Route "Test" ist innerhalb der Präfix Admin-Pfad sieht aus, wenn es von POST generiert wird: "Http://127.0.0.1/Course1.1/public/admin/profile/test" Wenn ich die Datei ändere und AJAX admin/test lege, sind wir es ll platziert: "Http://127.0.0.1/Course1.1/public/admin/profile/admin/test" –

+0

Fair genug, aber es sieht aus wie meine Antwort auf Ihre Frage war richtig - brauchte nur eine Optimierung für die korrekter Pfad Viel Glück! – swatkins

0

das Problem für mein war gelöst ...

Das Problem war, dass die Route in der AJAX immer gedacht:

url: 'test' 

aber der Pfad im Browser immer gedacht:

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

"admin/profile/create" 

Ich musste so in meiner AJAX aus dem „Profil“ Verzeichnis erhalten:

url:'../test' 

dass all