2016-11-08 204 views
0

我正在做一個投票系統與jQuery AJAX。當點擊div(投票時)時,數據被髮送到中間文件(在這種情況下爲up_vote.php),然後div用新數據更新。它完美地工作,給出結果= 2(變量加一)。投票系統與jQuery AJAX

在第二階段,我嘗試在另一個div(#results在頁面的另一個站點)中顯示投票結果。問題是,它會刷新div,但結果不正確,顯示1而不是2(看起來像變量沒有被髮送,或者div在接收結果之前刷新)。

我離開的情況下,任何人想嘗試的完整代碼...

的Index.html

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<link type="text/css" rel="stylesheet" href="style.css" /> 
<script type="text/javascript" src="myjquery.js"></script> 
</head> 
<body> 
    <script type="text/javascript"> 
     $(function(){ 
      $(".n_vote").click(function() { 
       var id_field = $(this).attr("id"); 
       var parent = $(this); 

       $.ajax({ 
        type: "POST", 
        url: "up_vote.php", 
        data: { 
         id_field: id_field, 
         name: name 
        }, 
        cache: false, 
        success: function(html) { 
         //Show the results in the same div 
         parent.html(html); 
         //Show the results in another div, #results 
         $("#results").load("up_vote.php"); 
        } 
       }); 
       return false; 
      }); 
     }); 
    </script> 

    <div class="vote_system"> 
     <div class="n_vote" name="up" id="1">Clic here to show the result</div> 
    </div> 
    <!-- Correct result=2 --> 
    ______________________________ 

    <br> 
    Show the result in a another div: 
    <br> 
    <div class="results" id="results"> 
    </div> 
    <!-- Incorrect result=1 --> 
</body> 
</html> 

up_vote.php

<?php 
    $id_field = $_POST['id_field']; 
    echo 'Result='; 
    echo $id_field + 1; 
?> 

能更有經驗的人給我解釋一下爲什麼第二個div沒有顯示正確的結果?會發生什麼,我該如何解決它?

回答

2

而不是使用$("#results").load("up_vote.php");加載up_vote.php(obviousely傳遞$ id_field不設空,因爲您加載通過get和不帶參數的URL),因此它正常的,你有,而不是1 2
你有使用相同的成功html從服務器返回,以顯示它在第二個div,如$("#results").html(html);