Hello this is my code to display data each 2s without refresh page but I don't know why it's not working.
<body>
<script type="text/javascript">
$(document).ready(function() {
done();
});
function done() {
setTimeout(function() {
updates();
done();
}, 2000);
}
function updates() {
$.getJSON("saipa.php", function(data) {
$("ul").empty();
$.each(data.result, function(){
$("ul").append("<li>Name: "+this['Name']+"</li>
<li>detail: "+this['Description']+"</li>
<li>Today price: "+this['Today']+"</li>
<li>Last day price: "+this['Lastday']+"</li>
<br />");
});
});
}
</script>
<ul></ul>
</body>
JSON:
[{"Name":"arash","Description":"vian","Today":"20,500,000","Lastday":"22,410,000"},{"Name":"shaber","Description":"root","Today":"38,200,000","Lastday":"40,210,000"}]
JSON cannot parse with []
use .
operator Try this code
function updates() {
$.getJSON("saipa.php", function(data) {
$("ul").empty();
$.each(data, function(i,value){
$("ul").append("<li>Name: "+value.Name+"</li>
<li>detail: "+value.Description+"</li>
<li>Today price: "+value.Today+"</li>
<li>Last day price: "+value.Lastday+"</li>
<br />");
});
});
}
Try using $.parseJSON(data)
$.getJSON("saipa.php", function(data) {
var data = $.parseJSON(data);
$("ul").empty();
This function works good for timeouts as well.
https://gist.github.com/inceptzero/c391e7330c5b331ffa02
(function($){
$(function(){ //document.ready
});
(function recurseEvent(element){
element.doStuff();
setTimeout(function(){
recurseEvent(element);
}, 2000);
})($('#myElement'));
})(jQuery);