Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Obnova jednoho divu - Javascript

Zdarec, mám web a v něm div, který chcu, aby se obnovoval třeba každých 5 sekund. Jde o výpis z databáze, takže kdyby někdo přidal do databáze nový řádek, tak chcu, aby se to za pár sekund vypsalo i na stránce bez toho, aniž bych to aktualizoval. Ale nevím, jak to mám udělat, s JS jsem nikdy nedělal a toto docela spěchá.

require_once "../include/db.php";
	$dotaz = mysql_query("SELECT *FROM `adminchat` ORDER BY `adminchat`.`id` DESC");
	echo "<div id=\"achat_chat\">";
	while ($vypis = mysql_fetch_assoc($dotaz)) {
		echo "
		<p>Vložil/a: <b>".$vypis['author']."</b></p>
		".$vypis['text']."
		<hr>
		";
	}
	echo "</div>";

potřebuju, aby se (třeba) každých 5 sekund aktualizoval div s id achat_chat, jak to mám udělat?

Předmět Autor Datum
jQuery
Ilmarinen 11.04.2015 23:31
Ilmarinen
AJAX, ne? nevím, jak má vypadat daný script... mám tento a nefunguje mi <script type="text/javascri…
Vilak 11.04.2015 23:35
Vilak
Co přesně znamená, že nefunguje?
Wikan 11.04.2015 23:40
Wikan
jde o diskuzi, tedy, že tam uživatelé mohou něco napsat a to se pak zobrazí. Ovšem když řeknu kámošc…
Vilak 11.04.2015 23:49
Vilak
No a proto se ptám, co přesně nefunguje. Zavolá se ten request? Nehlásí to nějakou chybu do konzole?
Wikan 11.04.2015 23:52
Wikan
tady to máš... kimb funkce refreshChat prý není jednoznačná...
Vilak 12.04.2015 00:02
Vilak
Ne jednoznačná, ale definovaná. Však se podívej, co tam máš: $.ajax({ type : &quot;POST&quot;, ur… poslední
Flash_Gordon 12.04.2015 02:12
Flash_Gordon

AJAX, ne?
nevím, jak má vypadat daný script... mám tento a nefunguje mi

<script type="text/javascript">
    	function refreshChat() {
		$.ajax({
		            type  : "POST",
		            url : "www.gmvk.eu/admin/admin-chat.php",
		            data  : { argument1: "hodnota1", argument2: "hodnota2" }, // < GET PARAMETRE
		            success: function(data) { // < data = string, ktorý vrátil PHP skript
		            $("#achat_chat").html(data); // ALEBO, ak chces pridat:
		            $("#achat_chat").html($("#achat_chat").html + data);
		            },
		            fail: function(jqXHR, textStatus, errorThrown) { // < V pripade chyby
		                    alert(textStatus);
		            }
		          });
		}
    </script>
	<script type="text/javascript">
		 var refreshint=setInterval(function () {refreshChat()}, 5000);
    </script>

jde o diskuzi, tedy, že tam uživatelé mohou něco napsat a to se pak zobrazí. Ovšem když řeknu kámošce, aby tam něco napsala, tak se mi to nezobrazí. Zobrazí se mi to až po tom, co to aktualizuji. A chci, aby se mi to objevilo po těch 5ti sekundách, co to napíše (teda respektive aby se to obnovovalo každých 5 sekund).

Ne jednoznačná, ale definovaná.

Však se podívej, co tam máš:

	$.ajax({
		            type  : &quot;POST&quot;,
		            url : &quot;/admin/admin-chat.php&quot;,
		            data  : { argument1: &quot;hodnota1&quot;, argument2: &quot;hodnota2&quot; }, // &lt; GET PARAMETRE
		            success: function(data) { // &lt; data = string, ktorý vrátil PHP skript
		            $(&quot;#achat_chat&quot;).html(data); // ALEBO, ak chces pridat:
		            $(&quot;#achat_chat&quot;).html($(&quot;#achat_chat&quot;).html + data);
		            },
		            fail: function(jqXHR, textStatus, errorThrown) { // &lt; V pripade chyby
		                    alert(textStatus);
		            }
		          });
		}
    &lt;/script&gt;
	&lt;script type=&quot;text/javascript&quot;&gt;
		 var refreshint=setInterval(function () {refreshChat()}, 5000);
    &lt;/script&gt;</textarea>	

Máš tam escapované znaky.
Tudíž, z hlediska zdrojáku je to nesmysl.

Zpět do poradny Odpovědět na původní otázku Nahoru