我如何设置会话变量在点击按钮事件之前的验证


How I can set session variable on click button event before auth laravel

请帮帮我。我想创建一个会话变量时,用户将点击按钮,然后登录后,变量我可以在家庭控制器上调用。当我在做下面的编码会话是记住用户是点击按钮或不是每次登录后,它显示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;
}
}

请告诉我哪里错了

$('#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');

不能从javascript调用php。所以你的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);
    });
});

作为结果,您应该在浏览器中看到一条带有"ok"文本的警告消息。并设置一个会话变量