2016-11-25 90 views
0

我面臨着這樣的問題:我曾在一個網站的每一個意見,以button report讓羣衆舉報評論。我想如果有人點擊按鈕將被重定向到彈出窗口讓人們登錄或註冊。我想在登錄/註冊完成後這個請求(count)被髮送到數據庫。如何在jQuery中使用php會話?

我的問題是我怎麼能執行此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中。以同樣的方式,你需要使用JavaScript來AJAX來你的PHP中的調用來問,如果用戶登錄 - 那麼php可以使用if(isset($ _ SESSION [「SESSION_USER」])){做某事}到發回一個json_encoded消息,告訴javascript該用戶是否已登錄以及該怎麼做。 – WEBjuju

回答

0

您可以使用PHP來確定用戶是否登錄,如果它們打印自己的身份證到一個隱藏的輸入變量。

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

然後在JS當你需要的ID,你可以使用jQuery找到它:

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

也許這一個可能的答案我正在做它使用的每一個網站,讓人們輕鬆地使用它wihout觸及代碼惟獨這樣 toto

+0

你可能需要一個#在「comment_div」的前面,如果你想獲得DIV與comment_div的ID,除非comment_div本身就是一個HTML標籤,在這種情況下,我們可能無法在堪薩斯了;)好運氣 - 它聽起來很酷 – WEBjuju

+0

是的,這是錯誤的沒有這個問題。 – toto

0

你試過這樣

if(<?php isset($_SESSION['session_user']) ?>) { do something }

+0

是與彈出窗口登錄後的問題,我不知道怎麼弄的人 – toto

+0

的ID我發現,把一個隱藏的輸入變量在HTML(通過創建HTML時使用PHP打印)允許我的javascript簡單的訪問用戶的ID。 – WEBjuju

+0

$ _SESSION ['session_user']是否代表user_id或username?創建會話後,您可以在任何包含以下代碼的PHP頁面上訪問它?php session_start();? >您可以在jQuery中添加一個PHP if語句來檢查是否有會話以及它屬於誰。 –