如何在auth laravel之前在单击按钮事件上设置会话变量

时间:2016-06-30 10:54:11

标签: php laravel laravel-4 laravel-5

请帮帮我。 我想创建一个会话变量,当用户点击按钮然后登录后我可以在家庭控制器上调用该变量。 当我在进行下面的编码会话时,记住用户是否每次点击按钮后都会在登录后显示1hi。

功能是:

$('#sub').on('click',function(){
        <?php \Session::put('testings', true);  
        ?>
    });

登录后我要显示的控制器如下:

public function home($reset = null){


        // indexed previous documents.
        $this->createResourcIndex();
        $this->title = 'Home';
        $folders = $folderList = [];
        $userLoggedIn = false;
        $sharedFiles = [];
        if(\Auth::check()){
            if(\Session::get('testings'))
            {
                echo \Session::get('testings');
                \Session::forget('testings');
                echo "hi";
            }
            else{
                echo "hello";
            }
            die;
}
}

请帮我解决我错的地方。

2 个答案:

答案 0 :(得分:0)

您无法从php致电javascript。所以你的onclick处理程序无法正常工作。相反,您必须调用某个php文件,例如:

$('#sub').on('click',function(){
    $.get('path/to/php-file.php');
});

并在该文件中,您可以设置会话变量。

修改 假设,我们创建了一个名为test.php的文件,并将其放在您网站的文档根目录中。以下是文件的内容:

<?php
// ... here goes some initial stuff about including Laravel,
// ... such as autoloader, session start and so...
\Session::put('testings', true);
echo 'ok'; //this is for testing purpose
?>

您可以在以下javascript中执行以下操作:

$('#sub').on('click',function(){
    $.get('/test.php', function(response) {
        alert(response);
    });
});

结果,您应该在浏览器中看到一条警告消息,其中包含&#34; ok&#34;的文本。并且将设置会话变量。

答案 1 :(得分:0)

$('#sub').click(function(evt){ evt.preventDefult(); $.ajax({ 'url':'file.php', success:function(response){ if(response=='ok'){ alert('session saved.'); }else{ alert('session Not saved!'); } } }); });

file.php

<?php /Session::set('key','value'); return response('ok');