2016-11-25 4 views
0

私はこの問題に直面しています。私は、人々にコメントを報告できるようにウェブサイトのすべてのコメントにbutton reportを作成しました。誰かがボタンをクリックしてポップアップウィンドウにリダイレクトされ、人々がログインまたは登録できるようにしたいと思っています。私はログイン後にしたい/登録が行われたこの要求(カウント)はデータベースに送信されます。jQueryの内部でphp sessionを使用するには?

私の問題は、私はjQueryのコード内でこれを行うことができる方法である:ここでは

if(isset($_SESSION['session_user'])) { /*do something*/ }.

は、私はすでに何をすべきかのコードです:

return this.each(function (i) { 
    var count = 0; 
    $(this).append("<button class='" + parametres.button + " report" + i + "''><span class='glyphicon glyphicon-alert'> </span>" + parametres.textBtn + "</button>").on('click', function() { 
     // if ("<%php !$_SESSION['user_session'] %>") { 
     // Popup window 
     $('#myModal').modal('show'); 
     // pane register 
     $('.btnReg').on('click', function() { 

      $.ajax({ 
       url: 'includes/register.php', 
       data: {name: $('#nameReg').val(), email: $('#emailReg').val(), password: $('#passwordReg').val()}, 
       type: 'POST', 
       beforeSend: function() { 
        //$('#error').fadeOut(); 
        $("#error").html('<div class="alert alert-info"> <span class="glyphicon glyphicon-transfer">Envoi en Cours ...</span></div>'); 
       }, 
       success: function (data) { 
        if (data == 'exist') { 
         $("#error").html('<div class="alert alert-danger"> <span class="glyphicon glyphicon-info-sign"></span>Ce mail n\'est pas disponible !</div>'); 

        } else if (data == 'success') { 
         $("#error").html('<div class="alert alert-success"> <span class="glyphicon glyphicon-info-sign"></span>Inscripton effectuée !</div>'); 

        } else { 
         $("#error").fadeIn(1000, function() { 
          $("#error").html('<div class="alert alert-danger"><span class="glyphicon glyphicon-info-sign"></span>' + data + ' !</div>'); 
         }); 
        } 
       } 
      }); 
     }); 
     // pane login 
     $('.btnLog').on('click', function (elem, i) { 
      //event.preventDefault(); 
      $.ajax({ 
       url: 'includes/login.php', 
       data: {email: $('#emailLog').val(), password: $('#passwordLog').val()}, 
       type: 'POST', 
       success: function (data) { 
        if (data == 'success') { 
         $("#error").html('<div class="alert alert-info"> <span class="glyphicon glyphicon-transfer">Connexion en Cours...</span></div>'); 
         setTimeout(' window.location.href = "index.php"; ', 4000); 
        } else { //alert(data); 
         $("#error").fadeIn(1000, function() { 
          $("#error").html('<div class="alert alert-danger"> <span class="glyphicon glyphicon-info-sign"></span>' + data + ' !</div>'); 
         }); 
        } 
       } 
      }); 
     }); 
     //} 
     //This is the thing to be done after login, where to put it ? 
     count = count + 1; 
     if (count >= parametres.juge) { 
      var content = $(this).text(); 
      var click = count; 
      var tag = "<button class='" + parametres.button + " report" + i + "''>" + parametres.textBtn + "</button>"; 

      $.ajax({ 
       url: 'includes/controller.php', 
       data: {content: content, 
        click: click, 
        tag: tag}, 
       type: 'POST', 
       success: function (data) { 
        if (!data.error) { 
         //alert(data); 
         alert('Success!'); 
        } 
       } 
      }); 
      $(this).animate({'opacity': 0}, 1000, function() { 
       $(this).text(parametres.textReplace).css('color', parametres.colorTex); 
      }).animate({'opacity': 1}, 1000); 
     } 
    }); 
}); 
+1

私はあなたの答えにあなたを導くせて - なぜあなたは、このコードスニペットでAJAXを使用していますか? (ヒント:jqueryはphpを実行できないので、ajax経由でサーバー上のphpと通信する必要があります)。 – WEBjuju

+0

Ajaxを使用して、ログイン/登録/コントローラのPHPページにデータを送信しています。ここでは、ボタンを何回クリックしたかのようにデータベースを挿入/更新します。ボタンのクリック数は、コメントが自動的に隠れる20のようないくつかの数字に達する。 – toto

+0

右ですが、controller.phpコードをjqueryに入れようとはしません。同じ方法で、あなたは、ユーザーがログインしているかどうかを尋ねるためにphpへの呼び出しをjavascriptを使って行う必要があります - そして、PHPはif(isset($ _ SESSION ['session_user'])){do something}ユーザーがログインして何をすべきかをjavascriptに伝えるjson_encodedメッセージを送り返します。 – WEBjuju

答えて

0

phpを使用して、ユーザーがログインしているかどうかを判断したり、隠れた入力変数にIDを表示したりすることができます。あなたがIDを必要とするとき

<?php isset($_SESSION['session_user']): ?> 
    <input type="hidden" id="session_user_id" value="<?php echo $_SESSION['session_user_id']; ?>"> 
<?php endif; ?> 

はその後JSで、あなたはそれを見つけるためにjqueryのを使用することができます。

var session_user_id = $('#session_user_id').val(); 
+0

これは答えかもしれません。私はプラグインを作成しています。このプラグインは、すべてのWebサイトで、このようなjquery関数の呼び出しだけを除いて簡単にコードを使用できるようにするために使用されています toto

+0

comment_div自体がhtmlタグでない限り、comment_divのidでdivを取得しようとしている場合は、「comment_div」の前に#が必要な場合があります。その場合は、もうカンザスにいないかもしれません)good luck - それは冷たく聞こえる – WEBjuju

+0

はい、これは間違いありません。 – toto

0

は、あなたがこの

if(<?php isset($_SESSION['session_user']) ?>) { do something }
ようにしようとしています。

+0

はいポップアップウィンドウでログインした後に問題が発生する人のIDを取得する方法がわからない – toto

+0

HTML(HTMLを作成するときにPHPを使用して印刷)に隠された入力変数を置くと、javascriptに簡単にアクセスできますユーザーのID。 – WEBjuju

+0

$ _SESSION ['session_user']はuser_idまたはusernameを表していますか?セッションが作成されたら、<?php session_start();を含む任意のPHPページでセッションにアクセスできます。 > jQueryにPHP if文を入れて、セッションがあるかどうか、それが誰に属するのかを確認できます。 –

関連する問題