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