2012-04-05 6 views
0
$(function() { 
    setInterval(function() { 
     $.get("refresh.php", function(result) { 
      $('#response').empty() 
      .hide() 
      .html(result) 
      $("#response").append(result) 
      .fadeIn("slow"); 
     }); 
    }, 5000); 
}); 

на самом деле мой сценарий попадает refresh.php каждые 5 сек в refresh.php я выборки данных из БД MySQL и создать шаблон, как:Очистить содержимое DIV

<table> 
<tr><td>Name<td><td>$fetch['name']</td></tr> 
</table> 

я проверил на поджигатель мой обновления. PHP отправить ответ только один раз после того, как 5seconds но во всех браузерах он показывает результат в два раза, как:

<table> 
    <tr><td>Name<td><td>$fetch['name']</td></tr> 
    </table> 
<table> 
    <tr><td>Name<td><td>$fetch['name']</td></tr> 
    </table> 

ответ

4

это показывает результат в два раза, потому что вы кладете его там дважды: первый раз используя html, а затем с помощью append:

$(function() { 
    setInterval(function() { 
     $.get("refresh.php", function(result) { 
      $('#response').empty() 
      .hide() 
      .html(result)     // <==== Here 
      $("#response").append(result) // <==== And here 
      .fadeIn("slow"); 
     }); 
    }, 5000); 
}); 

html заменяет содержимое элемента с разметкой (или элемент [s]) вы поставляете (нет никакой необходимости empty до его использования). appendдобавляет разметку (или элемент [s]), которую вы передаете элементу.

Вы хотите того или другого. Я бы с html:

$(function() { 
    setInterval(function() { 
     $.get("refresh.php", function(result) { 
      $('#response') 
       .hide() 
       .html(result) 
       .fadeIn("slow"); 
     }); 
    }, 5000); 
}); 
+1

Упс спасибо дружище –

-1

Используйте следующие

$.get("refresh.php", function(result) { 

    $("#response").html(result); 
}); 
+0

почему downvoted этот ответ –

Смежные вопросы