2016-08-10 2 views
1

Derzeit arbeiten für Echtzeit-Chat-Modul von Laravel. Ich bin in der Lage, Benutzer Chat-Daten von ajax zu Datenbank zu senden, kann jedoch nicht Daten aus der Datenbank ohne Aktualisierung anzeigen.Wie laravel Daten ohne Seitenauffrischung holen?

Hier ist der beste Platz Nachricht anzuzeigen, die von database- Hier

 <ul class="convo-list convo-body"> 
     <li> 
     <div class="row convo-row-msg"> 
      <div class="col-xs-2 convo-row-msg-avatar"> 
       <a href="{{ url('/') }}/images/users/photos/profiles/{{ $users->profilephoto }}"> 
       <img src="{{url('/') }}/images/users/photos/profiles/{{ $users->profilephoto }}" alt="" width="220px" style="border: 4px solid #fff;border-radius:2px;"> 
       </a> 
      </div> 
      <div class="col-xs-10 convo-row-body"> 
      <b><a href="#"> Username place here </a> </b> 
      <span class="timestamp"> 
       Timestamp 
      </span> 
      <p class="convo-content"> User chat message will be there </p> 
      </div> 
     </div>   
     </li> 
    </ul> 

kommt, ist meine Ajax, dass ich von database-

var takeHash = $('#hash').val(); 
var interval = setInterval(function(){ 

$.ajax({ 
    type: 'GET', 
    url: takeHash, 
    success: function(response) { 

     $('.convo-body').append(response); 

    } 
}); 

}, 1000); 

Schließlich mein Controller Antwort wie die Weg- greifen müssen

Also, kann mir jemand helfen, wie ich meine Daten in Blade-Vorlage (l Aravel verwenden das)?

var takeHash = $('#hash').val(); 
 
var interval = setInterval(function(){ 
 

 
$.ajax({ 
 
    type: 'GET', 
 
    url: takeHash, 
 
    success: function(response) { 
 

 
     $('.convo-body').append(response); 
 

 
    } 
 
}); 
 

 
}, 1000);
<ul class="convo-list convo-body"> 
 
     <li> 
 
     <div class="row convo-row-msg"> 
 
      <div class="col-xs-2 convo-row-msg-avatar"> 
 
       <a href="{{ url('/') }}/images/users/photos/profiles/{{ $users->profilephoto }}"> 
 
       <img src="{{url('/') }}/images/users/photos/profiles/{{ $users->profilephoto }}" alt="" width="220px" style="border: 4px solid #fff;border-radius:2px;"> 
 
       </a> 
 
      </div> 
 
      <div class="col-xs-10 convo-row-body"> 
 
      <b><a href="#"> Username place here </a> </b> 
 
      <span class="timestamp"> 
 
       Timestamp 
 
      </span> 
 
      <p class="convo-content"> User chat message will be there </p> 
 
      </div> 
 
     </div>   
 
     </li> 
 
    </ul>

+0

Können Sie ein Kinderspiel machen? –

+0

in jsFiddle kann PHP-Code nicht ausführen. Jedoch habe ich dort dort HTML und JavaScript-Code ..... https://jsfiddle.net/twcwfy2w/ – tisuchi

+0

Besserer Ansatz für die Integration von Echtzeit-Chat ist XMPP. Andernfalls müssen Sie ein Skript erstellen, das die Aktualisierung in db überprüft und die Änderungen in einem kürzeren Zeitintervall durchführt. –

Antwort

0

Iam nicht über Ihre Ausgangsdaten angepasst, so dass ich das Anfügen Format in Benutzerbildschirm gerade aktualisiert.

$.ajax({ 
type: 'GET', 
url: takeHash, 
success: function(response) { 
appenddata='<li>'; 
    if (typeof(response)=='array') { 
    appenddata+=response['message']; 
    } 
    if (typeof(response)=='object') { 
    appenddata+=response->message; 
    } 
    if (typeof(response)=='string') { 
    appenddata+=response; 
    } 
    appenddata+='</li>'; 
    $('.convo-body').append(appenddata); 

} 
}); 

}, 1000); 
+0

Wie löst das das Problem? – Takarii

+0

TQ für Ihre Antwort ... tatsächlich ist meine Nachricht HTML-Code anzeigen im ersten Block meiner Frage. Ich muss alle meine Rückkehrdaten dort anzeigen ... das ist das Problem, das ich lösen muss ... – tisuchi

+0

so jquery foreach array.forEach verwenden (Funktion (currentValue, Index, arr), thisValue) – Joyson