user2174050 user2174050 - 1 month ago 16
HTML Question

PHP refresh table without refresh entire page

I have a PHP page with one table that show any information in it. That information is refreshed every three secs.
Now I've found this solution for refresh the table:

<?php
echo "<div>Welcome!</div>";
echo "<div align= \"center\" id=\"infos\">";
echo "<table border= \"1\">";
...
echo "</table>";
echo "</div>";
?>

<script type="text/javascript">

$(document).ready (function () {
var updater = setTimeout (function () {
$('div#infos').load ('index.php', 'update=true').scrollTop(lastScrollPos);
}, 3000);
});
</script>


in this way the html result is correct,
the page is correctly updated every 3 secs, but after the first update happens a strange thing:

Html result:

<div>Welcome!</div>
<div align= "center" id="infos">
<div>Welcome!</div>
<div align= "center" id="infos">
<table border= "1">
...
</table>
</div>


So, all that I had before the refreshed div, now I have them inside the div.
Where I'm wrong?

Answer Source

If I'm not wrong you're calling the same file again so you could try to do this instead,

index.php

<?php
echo "<div>Welcome!</div>";
echo "<div align= \"center\" id=\"infos\">";    
echo "<table border= \"1\">";
...
echo "</table>";
echo "</div>";
?>

<script type="text/javascript">

$(document).ready (function () {
    var updater = setTimeout (function () {
        $('div#infos').load ('table.php', 'update=true').scrollTop(lastScrollPos);
        }, 3000);
});
</script>

table.php

<?php
echo "<table border= \"1\">";
...
echo "</table>";
echo "</div>";
?>