HTMLページに次のものがあります。
<script type="text/javascript">
setInterval(function(){refresh()},5000);
function refresh()
{
$.post("test.php",
{
// nothing here
},
function(data, textStatus)
{
$('' + data + '').find('.maindiv').each(function () {
$('.maindiv').replaceWith('.maindiv');
});
});
}
</script>
<div id = "1" class= "maindiv">
<div sid= "1" class= "subdiv">old sub div content</div>
<div cid= "1" class= "childdiv">another old sub div</div>
<img id = "1" src="http://foo.com/bar.png"/>
</div>
<div id = "2" class= "maindiv">
<div sid= "2" class= "subdiv">this content is old</div>
<div cid= "2" class= "childdiv">please update me!</div>
<img id= "2" src="http://foo.com/bar.png"/>
</div>
要素を更新するために呼び出される PHP ページ (test.php):
<?php
echo '<div id = "1" class= "maindiv">
<div sid= "1" class= "subdiv">this is new sub div</div>
<div cid= "1" class= "childdiv">this is also new sub div content</div>
<img id= "1" src="http://foo.com/bar.png"/>
</div>';
echo '<div id = "2" class= "maindiv">
<div sid= "2" class= "subdiv">new content</div>
<div cid= "2" class= "childdiv">new content for this child div</div>
<img id= "2" src="http://foo.com/bar.png"/>
</div>';
?>
これら 2 つの要素は、HTML ページにも存在します。基本的に、PHPページと呼び、PHPページからそれらの要素を取得し、HTMLページの応答でそれらをループし、各maindiv(すべての子要素を含む)をHTMLページの対応するものに置き換えます。
これは非常に基本的な例です。これらの要素のコンテンツが変更され、ライブ更新のように要素を置き換えたいため、これを行います。
私が投稿している関数には応答がないようですので、これを達成する方法がわかりません。
前もって感謝します