Autor Zpráva
hruda
Profil *
Ahoj, napsal sjem si takovej jendoduchej chat, alke chtěl bych aby se automaticky reloadnul po 1 minutě. Napsal jsem toto, ale hází mi to tam po reloadu chybu: There was a problem with the request..
Kde je chyba?

<script type="text/javascript" language="javascript">
   var http_request = false;
   function makeRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      http_request.onreadystatechange = alertContents;
      http_request.open('GET', url + parameters, true);
      http_request.send(null);
   }

   function alertContents() {
      if (http_request.readyState < 4){
      	waitingPageBody = '<img src="img/loading.gif" alt="Načítám..." />';
      	document.getElementById('myspan').innerHTML = waitingPageBody; 
      }
      else if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;
            document.getElementById('myspan').innerHTML = result;            
         } else {
            alert('There was a problem with the request.');
         }
      }
   }
   
   
	window.setInterval('makeRequest()', 60 * 1000); //tady se nastaví interval ve kterém se bude reloadovat stránka... 1000 = 1 sekunda
	makeRequest('chat_rpc.php', getstr);
</script>


<input type="button" name="button" value="GET test.html" onclick="javascript:makeRequest('test.html', '');" />
<br /><br />
<input type="button" name="button" value="GET get.php?test=2" onclick="javascript:makeRequest('chat_rpc.php', '?test=2');" />
<br /><br />

<h1>Chat</h1>

<form action="javascript:get(document.getElementById('myform'));" id="myform">
	Přezdívka: <input type="text" name="prezdivka" value="teststring" /><br />
	Text: <textarea name="chat_text" cols="10" rows="10"></textarea><br />
	<input type="button" name="button" value="Submit" onclick="javascript:get(this.parentNode);" />
	<input type="submit" name="button" value="Normal Submit Button" />
</form>

<br /><br />
<b>Server-Response:</b><br />
<span id="myspan">
<?php
require "./chat_rpc.php"; //připojení k databázi
?>
</span>



Moderátor Chamurappi: Titulek „Reload Ajax“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
Chamurappi
Profil
Reaguji na hrudu:
PHP zdroják je docela k ničemu, prosím o odkaz na živou ukázku.

hází mi to tam po reloadu chybu: There was a problem with the request..
Tuhle chybu si vyhazuješ sám na řádku 41.
Přidej si do alertu http_request.status a uvidíš, jaký stavový kód dostáváš. Případně si vypiš http_request.responseText a uvidíš, jaká odpověď ti přišla od serveru.
hruda
Profil *
chat.tukni.cz/
denCo
Profil
hruda:
stránka neexistuje...
...
else if (http_request.readyState == 4 && http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;
            document.getElementById('myspan').innerHTML = result;            
         } else {
            alert('There was a problem with the request.');
         }
...

to znamená, že máš problém s tým, že ti to nenačíta, nie s tým,že sa to má reloadovať. Skús si tú hlášku vymazať, a hlavne daj ukážku, ktorá funguje
Chamurappi
Profil
Reaguji na denCa:
Skús si tú hlášku vymazať
Pak už nezjistí vůbec nic.

máš problém s tým, že ti to nenačíta, nie s tým,že sa to má reloadovať
Myslím, že první načtení mu funguje a že teprve při ostatních dostává chybu 404, protože na serveru nemá soubor na adrese „NaN“, ze které se snaží stahovat.
denCo
Profil
Chamurappi:
môže byť, zišlo by sa aby pridal fungujúcu ukážku
Aichi
Profil
denCo:
kdyby jí měl fungující, tak by nepotřeboval poradit :)
Chamurappi
Profil
Reaguji na Aichiho:
Kolega denCo měl na mysli fungující ukázku nefunkčnosti :-)
denCo
Profil
Chamurappi:
hej, presne to, ale žiadny z týchto príspevkou mu asi veľmi nepomohol :D
_es
Profil
hruda:
Do atribútu onclick sa nepíše protokol javascript:, takže správne má byť:
onclick="makeRequest('test.html', '');"

Na iných miestach voláš funkciu get, ktorú však nemáš nikde definovanú.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0