【问题标题】:Return data from controller to ajax laravel从控制器返回数据到 ajax laravel
【发布时间】:2018-04-07 19:31:32
【问题描述】:

我想在插入新行时显示通知。我通过下面的代码实现了它, Ajax

<script>

    var old_count = 0;
    var i=0;
    setInterval(function(){    
    $.ajax({

    url : "shownotify",
    success : function(data){
    if (data > old_count) 
    { 
        if (i == 0)
        {old_count = data;} 
        else{
        $('#notify').html("New user");
        old_count = data;
        }
    } i=1;
 }
});
},1000);                                
        </script>

现在我想显示从控制器返回的新用户数,

public function shownotify()
{
     $action=DB::table('users')->where('admin_action_at', 'null')->count();
     $data=Move::count();

    return compact('action', 'data');

}

如何在 ajax 函数中获取它?有人可以帮忙吗?

【问题讨论】:

  • 你想在哪里展示?

标签: php ajax laravel-5


【解决方案1】:

您需要传递数组$data,但您传递的是一个字符串。

public function shownotify()
{
     $action=DB::table('users')->where('admin_action_at', 'null')->count();
     $data=Move::count();

    $return_array = compact('action', 'data');
    return json_encode($return_array);

}

并在您的 ajax 成功回调函数中进行一些更改,例如:

success : function(data){
if (data.data > old_count) 
{ 
    if (i == 0)
    {old_count = data.data;} 
    else{
    $('#notify').html(data.data + "New user");
    old_count = data.data;
    }
} i=1;

【讨论】:

  • 我不想显示新添加的用户数,例如$('#notify').html(+count+"New user");
  • @saranya,检查我更新的答案。我再次将'$data' 更改为'data',并且我还建议对ajax 代码进行一些更改。
  • 我的荣幸。乐于助人。
猜你喜欢
  • 1970-01-01
  • 2017-12-23
  • 1970-01-01
  • 2016-05-21
  • 1970-01-01
  • 2019-11-21
  • 1970-01-01
  • 1970-01-01
  • 2016-12-14
相关资源
最近更新 更多