Laravel 5如何让控制器显示简单的消息框或警报?

时间:2016-02-05 21:55:42

标签: javascript php jquery laravel alert

无法找到这个简单问题的解决方案,我只是做一些投票应用程序,如果用户投票,我想显示简单的提醒,如"谢谢" ,但我找不到从控制器那里做到的方法?我已经尝试过这样简单的jQuery代码,但是它没有用。

echo "<script>alert('You have already voted');</script>"; 

任何简单的解决方案?

public function voting()
{
    $ip=$_SERVER['REMOTE_ADDR'];
    $id = Input::get('msg_id');
    $vote = Input::get('vote');
    $count = Voting::wheremes_id_fk($id)->whereip_add($ip)->count();

    if($count==0)
    {
        if($vote == "up")
        {
            Project::whereid($id)->increment('up');

            Voting::insert(
                array('mes_id_fk' => $id, 'ip_add' => $ip )
            );
        }
        else if ($vote=="down") {

            Project::whereid($id)->decrement('down');

            Voting::insert(
                array('mes_id_fk' => $id, 'ip_add' => $ip )
            );
        }
    } 
    else {
        // How to popup "thanks" alert??
    }
}

1 个答案:

答案 0 :(得分:1)

如果您使用ajax进行投票,请返回json回复并使用JavaScript来回复json回复。

示例:

public function vote()
{
  //your voting code
  return Response::json(['success'=>true]);
}

并在JavaScript中查看json

$.post('/vote/', { id: 123   }, function(data){
    if(data.success== true)
    {
      alert('Thanks for voting);
    }
}

如果您不使用ajax,只需使用会话闪存。

,即来自你的控制器,

public function vote()
{
  //your voting code
  Session::flash('msg', 'Thanks for voting');
 return Redirect::back();
}

并从View,

@if(Session::has('msg'))
  {{Session::get('msg')}}
@endif