2016-06-30 2 views
0

私は助けてください前に、ボタンのイベントをクリックしてセッション変数を設定することができます。 ログイン後、ユーザーがボタンをクリックしたときにセッション変数を作成して、その変数がホームコントローラで呼び出せるようにしたいとします。 私は以下のコーディングセッションを行っているときに、いずれかのユーザーがボタンをクリックしているかどうかを覚えているかどうかは、ログイン後毎回1hiを表示しています。どのように私はlaravel

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

、あなたは、デフォルトでは、そのセッションを作成します。それがうまくいかない場合は、セッションが以前に設定されている可能性があります。コードをテストするには、別のキーまたは空のセッションを使用してください。 @ user2110253 –

答えて

0

phpjavascriptから呼び出すことはできません。したがって、あなたの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」のテキストをブラウザに警告メッセージが表示されるはずです"セッション変数が設定されます。このコードによって

+0

私のためにはうまくいかないファイルを作成し、そのセッション変数を設定して、私が間違っている場所を教えてください。 – user2110253

+0

私の答えを編集して私の意図を示しました。 – spirit

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');