2016-07-06 46 views
2

嘿,我有點新,但我目前正在編寫一個小遊戲,並且我有一個使用jquery,css和php的健康欄。我使用mysql查詢從數據庫中獲取健康值,並且只有當我重新加載頁面時纔有效。我希望健康欄的價值不斷更新,我希望每秒達到x秒。如何在不重新加載頁面的情況下刷新div和mysql代碼

<script> 
 
    function UpdateStats() { 
 
    $.getJSON('demo1.php', function(stats) { 
 
     $('#pbar_innerdiv').animate({ 
 
     width: (stats.health) + '%' 
 
     }, 200); 
 
    }); 
 

 
    }, 1000; < /script>
#pbar_outerdiv { 
 
    margin-top: 5px; 
 
    margin-left: 90px; 
 
} 
 
#pbar_innertext { 
 
    margin-top: 6px; 
 
    margin-left: 7px; 
 
}
<div id="pbar_outerdiv" style="width: 580px; height: 32px; border: 1px solid white; z-index: 1; position: relative; border-radius: 2px; -moz-border-radius: 5px;"> 
 
    <div id="pbar_innerdiv" style="background-color: maroon; z-index: 2; height: 100%; width: <?php echo $health;?>%;"></div> 
 
    <div id="pbar_innertext" style="z-index: 3; position: absolute; top: 0; left: 0; width: 100%; height: 100%; color: white; font-weight: bold; text-align: center;"> 
 
    <?php echo $health;?>/100</div> 
 
</div>

+0

這就是php的樣子 $?UserStats = mysql_query(「SELECT health,hunger,energy, ['ID']。」'」); $ UserStats = mysql_fetch_assoc($ UserStats); echo json_encode($ UserStats); ?> –

+0

你的setTimeout JS函數在哪裏? 「,1000」在這裏沒有意義。 – Aviator

回答

0

改變你這樣的腳本

<script> 
     function UpdateStats() { 
     $.getJSON('demo1.php', function(stats) { 
      $('#pbar_innerdiv').animate({ 
      width: (stats.health) + '%' 
      }, 200); 
     }); 

     setTimeout(function(){UpdateStats()}, 3000); 
     } 

    UpdateStats();  

     < /script> 

這一個是更好然後setInterval的,它會調用第二次迭代時,第一個是完整的。希望它會幫助

explanation:首先它會在UpdateStats()完成後調用UpdateStats()函數,然後等待3秒鐘,然後它會調用第二次迭代。這個將重複執行

相關問題