2017-11-25 1 views
0

Ich versuche, das Ergebnis einer Abfrage in meinem modalen Fenster zu zeigen, wo ich eine Tabelle implementieren, wo ich mir die Ergebnisse anzeigen möchte, aber es gibt mir einen Fehler Undefined variable:vehiculos Ich habe schon alles und ohne versucht Ergebnisse Ich hoffe, Sie können mir helfen, meinen Code anzuhängen.Fehler Foreach auf die Ansichten Laravel

ist es mi Vista.

<!-- Modal --> 
    <div class="modal fade" id="m-buscar" role="dialog"> 
    <div class="modal-dialog modal-lg"> 

     <!-- Modal content--> 
     <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal">&times;</button> 
      <h4 class="modal-title">Lista de Carros</h4> 
     </div> 
     <div class="modal-body"> 
     <div class="panel-body"> 
     <table class="table"> 
    <thead> 
     <tr> 
      <th>placa</th> 
      <th>modelo</th> 
      <th>Email</th> 
      <th>Carros Propios</th> 
      <th>Carros Manejados</th> 
      <th>Opciones</th> 
     </tr> 
    </thead> 
     <tbody> 
     @foreach($vehiculos as $key => $c) 
      <tr class="id{{$c->id}}"> 
       <td>{{ $c->placa }}</td> 
       <td>{{ $c->marca }}</td> 
       <td>{{ $c->modelo }}</td> 
      </tr> 
     @endforeach 
    </tbody> 
    </table> 
     </div> 
     </div> 
     </div> 
     </div> 

Das ist mein Controller-

public function verCarro(Request $r) 
    { 
     $vehiculos = vehiculo::join('users','vehiculos.user_id','=','users.id') 
        ->select('vehiculos.id','vehiculos.marca','vehiculos.modelo','vehiculos.placa') 
        ->where('vehiculos.user_id','=', $r->id) 
        ->orderBy('vehiculos.id','DESC') 
        ->get(); 

     return view('admin.usuario.buscar', compact('vehiculos')); 
    } 

hier mein modal

$(document).on('click','.btn-user',function(e){ 
       var id = $(this).val(); 
       $.ajax({ 
        type: 'get', 
        url: "{{url('verCarro')}}", 
        data:{id:id}, 
        success:function(data) 
        { 
         $('#m-buscar').modal('show'); 
       }) 
      }) 
+1

Zuerst prüfen, was die Ausgabe von print_r ($ vehiculos) ist. Möglicherweise gibt es keine Ausgabe. –

+0

Oder versuchen, mit DD (Vehiculos) zu drucken; im Controller. –

+0

dd (vehiculos) es wird nicht gedruckt, weil der Controller von Ajax Anfrage gestartet wird. Er konnte nur $ vehiculos zurückgeben und dann die "Daten" -Reaktion einem Testfeld zuweisen, nur um es auf dem Bildschirm zu sehen. – Radu

Antwort

0

Im letzten Projekt Rufen ich gleiche tat, aber in einer etwas anderen Weise.

Also startet der Controller die Ansicht admin.usuario.buscar mit der Variablen $ vehiculos.

Sie können die „m-buscar“ div leer lassen und es auf dem Ajax Erfolg Zweig mit der Rückkehr Ansicht admin.usuario.buscar etwas wie folgt füllen:

Im Haupt html Sie die div haben m-buscar leer

<div class="modal fade" id="m-buscar" role="dialog"></div> 

...

und auf die Antwort erhalten Sie die admin.usuario.buscar Ansicht injizieren darin

(Iverwendet haben$('#m-buscar').html (data); statt $('#m-buscar').modal('show');)

$(document).on('click','.btn-user',function(e){ 
       var id = $(this).val(); 
       $.ajax({ 
        type: 'get', 
        url: "{{url('verCarro')}}", 
        data:{id:id}, 
        success:function(data) 
        { 
         $('#m-buscar').html (data); 
       }) 
      }) 

Der Blick admin.usuario.buscar nicht jedes Master-Layout erweitern sollte nur den HTML-Code, den Sie

admin.usuario.buscar im leeren m-buscar div injizieren wollen Ansicht sollte nur den eigentlichen Code des div enthalten:

...

<div class="modal-dialog modal-lg"> 

     <!-- Modal content--> 
     <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal">&times;</button> 
      <h4 class="modal-title">Lista de Carros</h4> 
     </div> 
     <div class="modal-body"> 
     <div class="panel-body"> 
     <table class="table"> 
    <thead> 
     <tr> 
      <th>placa</th> 
      <th>modelo</th> 
      <th>Email</th> 
      <th>Carros Propios</th> 
      <th>Carros Manejados</th> 
      <th>Opciones</th> 
     </tr> 
    </thead> 
     <tbody> 
     @foreach($vehiculos as $key => $c) 
      <tr class="id{{$c->id}}"> 
       <td>{{ $c->placa }}</td> 
       <td>{{ $c->marca }}</td> 
       <td>{{ $c->modelo }}</td> 
      </tr> 
     @endforeach 
    </tbody> 
    </table> 
     </div> 
     </div> 
     </div> 

Hoffe, es hilft :)

+0

Wenn es so funktioniert, lass es mich wissen :) – Radu