2017-07-26 6 views
0

Ich bin wirklich neu bei der Implementierung von Ajax in Laravel Blades. Ich habe nach Tutorials und so gesucht, aber es ist wirklich verwirrend. Ich hoffe du bist geduldig mit mirAjax in Laravel Blade

Also ich habe eine Klinge, die ich mit Ajax anwenden möchte, damit es wie jede Sekunde aktualisieren wird.

Ich frage mich, ob es ratsam ist, Ajax auf der ganzen Seite selbst anzuwenden.

Wenn nicht, hier ist der Teil meiner Klinge, auf den ich Ajax anwenden möchte (es ist im Vordergrund);

<div class="row"> 
     @forelse($receipt_ids as $receipt_id) 
      <div class="col-md-4"> 
       <div class="panel panel-default"> 
        <div class="panel-heading text-center"> 
         {{$receipt_id->receipt_id}} 
        </div> 

        <div class="panel-body"> 
         <table class="table table-bordered table-responsive"> 
          <thead> 
           <th>Name</th> 
           <th>Quantity</th> 
          </thead> 

          <tbody> 
          @foreach($orders as $order) 
           @if($receipt_id->receipt_id == $order->receipt_id) 
            <tr> 
             <td>{{$order->item}}</td> 
             <td>{{$order->qty}}</td> 
            </tr> 
           @endif 
          @endforeach 
          </tbody> 
         </table> 
        </div> 

        <div class="panel-footer clearfix"> 
         <button type="submit" class="btn btn-success pull-right" style="margin-right: 10px;"> 
          <i class="fa fa-check-circle" aria-hidden="true"></i> Served 
         </button> 
        </div> 
       </div> 
      </div> 
     @empty 

     @endforelse 
    </div> 

Ich habe das Gefühl, dass die Ajax wird mit Zeitänderung oder etwas verbunden sein.

EDIT: Ich habe jetzt irgendwie eine Führung. Ich benutzte;

<script type="text/javascript"> 
$(document).ready(function() { 
    setInterval(function() 
    { 
     alert('test'); 
    }, 2000) 
}); 
</script> 

Jetzt ist mein Problem, welche Syntax kann ich tun, um die Seite zu aktualisieren?

Antwort

0

Ihre Frage hat viel mehr mit Javascript zu tun als mit Blade-Syntax oder Laravel.

Laravel verwendet Blade, um Ihre Serverdaten (Liste der Belege in Ihrem Fall) in HTML umzuwandeln, das an den Browser gesendet wird. Von dort wird AJAX (Kommunikation mit dem Server vom Browser aus) vom Client mit Javascript durchgeführt.

Der aktuelle offizielle Weg, dies mit Laravel zu tun ist, etwas mit Vue.js zu implementieren, aber wenn Sie noch nicht, dann schlage ich vor, Sie einfach jQuery verwenden.

Um etwas in jeder Sekunde in Javascript rufen Sie verwenden können:

setInterval(function() { 
    ... 
}, 1000); 

Innerhalb der Funktion Sie $.get jQuery verwenden können Ergebnisse abzurufen und den Inhalt Ihrer Liste zu ersetzen. Der einfachste Weg wäre wiederum, eine Aktion aufzurufen, die nur das oben wiedergegebene HTML zurückgibt.

Ich hoffe, das bringt dich auf den Weg.

+0

Vielen Dank dafür! Mehr oder weniger habe ich jetzt eine Führung, haha. Ich habe versucht, diese Funktion zu verwenden und eine Warnung zu senden, um es zu testen. Jetzt versuche ich '$ .get' zu verwenden. Ich habe meinen Hauptbeitrag bearbeitet und mein Javascript funktioniert jetzt. –