Javascript 如何在不刷新页面的情况下获取laravel数据?

Javascript 如何在不刷新页面的情况下获取laravel数据?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,目前正在为laravel的实时聊天模块工作。我能够通过ajax将用户聊天数据发送到数据库,但是,如果不刷新,就无法显示数据库中的数据 这里是显示来自数据库的消息的位置- <ul class="convo-list convo-body"> <li> <div class="row convo-row-msg"> <div class="col-xs-2 convo-row-msg-avata

目前正在为laravel的实时聊天模块工作。我能够通过ajax将用户聊天数据发送到数据库,但是,如果不刷新,就无法显示数据库中的数据

这里是显示来自数据库的消息的位置-

        <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>
var takeHash = $('#hash').val();
var interval = setInterval(function(){

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

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

    }
});

}, 1000);
最后,我的控制器的反应是这样的-

    public function showSingleMessage($hash)
{
    $msg = Message::where('conversationhash', $hash)
                    ->where('fromid', '!=', Auth::user()->id)
                    ->get();
    $fromid = '';
    foreach ($msg as $value) {            
        $fromid = $value->fromid;
    }

    $messages = Message::where('conversationhash', $hash)
        ->Where('fromid', Auth::user()->id)
        ->orWhere('fromid', $fromid)
        ->get();

    $user = new User();
    return view('messages.show-single')
        ->with(['messages' => $messages, 'user' => $user, 'touser' => $fromid]);
}
那么,谁能帮助我如何在刀片模板中显示我的数据(laravel使用该模板)

var takeHash=$('#hash').val();
var interval=setInterval(函数(){
$.ajax({
键入:“GET”,
网址:takeHash,
成功:功能(响应){
$('.conva body')。追加(响应);
}
});
}, 1000);
  • 时间戳

    将显示用户聊天信息


我不符合您的输出数据,所以我只是更新了用户屏幕中的附加格式

$.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);
$.ajax({
键入:“GET”,
网址:takeHash,
成功:功能(响应){
附录数据=“
  • ”; if(响应类型)=“数组”){ appenddata+=响应['message']; } if(typeof(response)='object'){ appenddata+=响应->消息; } if(typeof(response)='string'){ 追加数据+=响应; } 附录数据+='
  • '; $('.conva body').append(appenddata); } }); }, 1000);
    您能生成JSFIDLE吗?在JSFIDLE中,无法运行PHP代码。然而,我只是在那里放置了html和javascript代码。。。。。集成实时聊天的更好方法是XMPP。否则,您需要创建一个脚本来检查数据库中的更新,并以更短的时间间隔在视图中进行更改。是的,我已经使用
    setInterval
    1秒来获取该数据。一切都在运转。现在,我需要知道如何在来自数据库的视图页面中以有组织的方式集成许多数据?有没有任何方法可以使用任何类型的jQuery模板,在那里我可以设置我的php、jQuery数据,最后该模板将被替换为html代码?TQ供您回答。。。实际上,我的消息显示html代码在我问题的第一部分。我需要在那里显示我所有的返回数据。。。这就是我需要解决的问题…所以使用jquery foreach数组。foreach(函数(currentValue,index,arr),thisValue)我需要ajax调用上聊天输出的示例数据格式来澄清