2017-08-13 68 views
0

我也運行簡單的ajax過帳值在同一頁,我保存到會話變量,這工作正常,但每當我在控制檯打印這些會話變量它不顯示最新值。使用ajax發佈的值,但js沒有得到更新的值

<script> 
    $(function(){ 
    function showValues() { 
     jQuery.ajax({ 
     type: "POST", 
     data: $("form").serialize(), 

     success: function(data){ 
      var x = <?php echo json_encode($_SESSION['q10']); ?>; 
      console.log(x); 
     } 
     }); 
    } 
    $("input[type='checkbox'], input[type='radio']").on("click", showValues); 
    $("select").on("change", showValues); 
    showValues(); 
    }); 
</script> 

上面的腳本從無線電,複選框和選擇輸入序列中的值後,我保存的那些關於以下變量

<?php 

if(isset($_POST['q10'])) 
{ 
    if($_POST['q10'] == 2){ 
    $_SESSION['q10']=1; 
    }else{ 
    $_SESSION['q10']=0; 
    } 
} 

最初我設置$ _SESSION [「Q10」] = 0和控制檯示出了該價值,但每當我改變了它的價值,它顯示了以前的價值。它沒有更新

P.s刷新頁面後,我得到更改後的值。我不應該在控制檯中

<nav class="segmented l3_seg"> 
    <input type="radio" name="q10" value="1" id="10a"> 
    <label for="10a">Richtig</label> 
    <input type="radio" name="q10" value="2" id="10b"> 
    <label for="10b">Falsch</label> 
    </nav> 
+0

JavaScript是由瀏覽器(客戶端)和PHP運行是在遙控器上運行

返回響應作爲

success: function(data){ console.log(data); } 

讀服務器,所以你不能只運行js的php代碼。 – hcheung

回答

0

很多意見,你會發現關於PHP是在服務器端運行,JavaScript是在客戶端運行文章更新的值。 PHP運行一次並將數據呈現給瀏覽器一次,如果你想再次與server/php重新連接,你需要使用你正在做的Ajax。

總之,你需要使用包含ajax返回響應的js變量。從PHP

if(isset($_POST['q10'])) 
{ 
    .... 
    return $_SESSION['q10']; 
} 

和顯示在控制檯約AJAX dataType