2012-04-17 19 views
3

したがって、配列を使用してJquery/AJAXを学び、単一の関数内の異なる要素でコードを更新しようとしています。Jquery、AJAX、PHP&Arraysを使用したリアルタイムアップデート

以下、私はサイトにログインしている人数と、通貨の総通貨でDIVを更新しようとしています。スクリプトは数秒ごとに更新されます。

誰でも私の構文を訂正したり、少なくとも私がここで間違っていることを教えてもらえますか?ここで

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript" src="../jquery.js"></script> 

<script type="text/javascript"> 
function updateStats(stat) 
{ 
    var stat = ["online","money"]; 

    var url = "online.php"; 

    $.each(stat,function(){ 

    $.post(url,{stat: stat} , function(data) { 

     $("#" + this).html(data);  
    }) 

    }) 
} 

setInterval('updateStats("updateStats")', 2000); 
</script> 


<body onLoad="updateStats(stats);"> 

<div id="online"></div> 
<div id="money"></div> 
</body> 
</html> 

<?php 

if($_POST['stats']=='online') 
{ 
    $result= $mysqli->query("SELECT loggedin FROM accounts WHERE loggedin !=0"); 
    echo $result->num_rows; 
} 

elseif($_POST['stats'] == 'money') 
{ 
$result = $mysqli->query("SELECT sum(money) AS totalMoney FROM users"); 
$getData = $result->fetch_assoc(); 

echo number_format($getData['totalMoney']); 

} 

$mysqli->close(); 

?> 
+1

'$ _POST ['stats']'/'{stat:stat}' stats!= stat –

+0

現時点では何が行われていないのですか、それについては何が行われていませんか? –

答えて

2

function updateStats(stat) 
{ 
    var stat = ["online","money"]; 
    var url = "online.php"; 

    $.each(stat, function(i, key){ 
     $.post(url, {stats: key}, function(data) { 
      $("#" + key).html(data);  
     }); 
    }); 
} 

も複数でstatsパラメータに注意してください。

+0

それだけです!どうもありがとうございます。 – prosportal

+0

これをあなたの答えとしますか?あなたの左の小切手で。 –

1

$("#" + this).html(data); 

thisそのような状況では、あなたが期待しているものとは異なるthisを指します。代わりにこれを試してみてください:

$.each(stat,function(i,str){ 
    $.post(url,{stats: str} , function(data) { 
     $("#" + str).html(data);  
    }); 
}); 

更新固定のparam名ロリーさんのコメントのとおり。

あなたのコードは次のようになります
+0

これは、ループに埋め込んでいるので、N個のポストリクエストをサーバーに送信します。 サーバーに「stat」 – Atticus

+0

@Atticusの配列を渡すことは理想的ですが、サービスは配列を受け入れられず、サービスを変更できないことがあります。 –

関連する問題