2015-04-28 137 views
1

我想計數一個SESSION變量,但我不希望用戶看到任何刷新。PHP計數與AJAX請求

我的問題與下面的代碼是,它改變只有一個,然後它需要刷新。我怎樣才能做到這一點沒有任何刷新?

test page: 

    <?php session_start(); ?> 
      <script src="../../../common/js/jquery-1.11.2.min.js"></script> 
     <script src="../../../common/js/jquery.touchwipe.min.js"></script> 
    <?php 
    if(empty($_SESSION['counter'])){ 
    $_SESSION['counter'] = 1; 
    } 
    $count = $_SESSION['counter']; 


    ?> 
    <div id="main"><?= $count; ?></div> 
    <button id="detailed">Link</button> 

    <script type="text/javascript"> 
     $(document).ready(function(){ 
      $(document).on('click','#detailed',function(){ 
       var count = "<?= $count ?>"; 
       count++; 
       $.ajax({ 
        type: "POST", 
        url: "test.php", 
        data: {countertje: count}, 
        success:function(data){ 
         $('#main').html(data); 
         console.log(data); 
        } 

       }); 
      }) 

     }); 
    </script> 

do_ajax.php

<?php 
    session_start(); 
    $_SESSION['counter'] = $_POST['countertje']; 
    echo $_SESSION['counter']; 
    ?> 
+1

舉動'變種數= 「」;'外/前'$(文件)。在( '點擊', '#詳細',函數(){ '。現在你正在重新設置每次點擊的次數 – Sean

回答

0
<script type="text/javascript"> 
     var count = "<?= $count ?>"; 
     $(document).ready(function(){ 
      $(document).on('click','#detailed',function(){ 
       count++; 
       $.ajax({ 
        type: "POST", 
        url: "test.php", 
        data: {countertje: count}, 
        success:function(data){ 
         $('#main').html(data); 
         console.log(data); 
        } 

       }); 
      }) 

     }); 
    </script> 

count應該是一個全局變量

+0

如果我把$ _SESSION ['counter']放在$ count的地方,它不工作,或者會話變量不是全局的嗎? – Erwin

+0

你能複製並粘貼代碼嗎? – user3284566

+0

var count =「」;肩膀失去功能 – user3284566

0

的東西,你可以使用以下

var count = $('#main').val(); 

,而不是在javascript:

var count = "<?= $count ?>"; 

書面方式PHP代碼中的JavaScript心不是好主意!

+0

爲什麼在javascript中編寫php代碼不是一個好主意? – Sean

+0

PHP是服務器端腳本語言,javascript是在客戶端。我們不能在客戶端處理PHP變量。 – ashikpatel

+0

你的第一句話是正確的,但不是你的第二句OP可以在javascript中使用php變量,即'var count =「」;'是有效的,但是OP在它的函數內部執行所以它總是重置回原始值。您不能執行php代碼/函數,但您可以使用php設置javascript的初始值。 – Sean