请帮帮我。 我想创建一个会话变量,当用户点击按钮然后登录后我可以在家庭控制器上调用该变量。 当我在进行下面的编码会话时,记住用户是否每次点击按钮后都会在登录后显示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;
}
}
请帮我解决我错的地方。
答案 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');