Autor Zpráva
Fisak
Profil *
Dobrý den. Nikde jsem nevygooglil žádný dobrý článek který by pomohl přímo mě. Párkrát sem se pokusil napsat kód pomocí setInterval() ale neúspěšně. Proto se chci dotázat. Dám příklad. Mám index.php kde se mi zobrazuje výpis z db např. z tabulky="zbozi" typ="auto" a id="1" a vypíšu "name" takže se mi vypíše například "Renault". Normálně v php bych to pořešil jako:
<?php
$sql=MySQL_Query("SELECT * FROM zbozi where typ = 'auto' & id = '1'");
$vypis=MySQL_Fetch_Array($sql);
echo "'$vypis[name]'";
?>
a nakonec bych udělal v JS fci setInterval("funkce_auto();", 1000);
Ale problém je v tom že to vypíše jen aktuální obsah DB pokud ovšem přepíšu v DB Renault na Renault - Clio tak se mi pořád bude zobrazovat Renault až po refreshi se mi bude zobrazovat Renault - Clio.
Hledám to už přez týden a ještě jsem nenašel žádný dobrý článek proto si myslím že někdo kdo toto umí by mohl dobrý článek napsat... určitě nejen mě by to dost pomohlo. (PS: pls nepište že se to dá udělat v AJAXU nebo Jquery to já vím jen nevím jak)
_es
Profil
Fisak:
jen nevím jak
Univerzální funkce pro AJAX
Fisak
Profil *
Uplně mi stačí napsat kratičký kód jednoduchý který bude fungovat :-) od kterého se budu moct odrazit...
Ugo
Profil
nevim úplně přesně co chceš, ale podle toho co chápu máš 2 možnosti
1. AJAX
2. iframe (fake ajax)

fci kterou poslal _es sem nestudoval ale mám za to že je to přesně ta co mam já z letmýho pohledu na dýlku kódu :). Ta funkce funguje tak, že jí jako parametry předáš URL a ID elementu kam má načíst obsah který se na dané URL zobrazí. Co teda potřebuješ je, udělat si nějakej script kterej bude vracet jenom ten výřez co potřebuješ (tabulku / buňku) a pak si nastavit setInterval("ajax('URL','ELEMENT')",1000); - jenom takový varování na závěr ještě ... nejde měnit obsah table,tr,td,select atp. to bys našel na netu, jediný co funguje opravdu spolehlivě je asi div :D - takže doporučuju vracet tabulku a jako element dát obalovací div
Fisak
Profil *
no dam klidně jiný příklad :-) máš z db výpis url obrázku který se ti promítá na index.php a právě já potřebuji aby se ten obrázek automaticky změnil bez nutnosti refreshe pokud se změní ta url v db ... právě tim setinterval se aktualizuje pořád dokola ta načtená url ale ne která je aktuální tudíž změněná v db...
Ugo
Profil
tak ještě jeden do rozkroku :-P
v tý URL volaný ajaxem by při změně obrázku bylo právě to
<?php
$sql=MySQL_Query("SELECT url FROM obrazky where id = '1'");
echo mysql_result($sql,'0','url');
?> 


ta fce() ajax se chová jako prohlížeč, otevře stránku a vrátí výsledek, při každym otevření stránky tedy dojde k novýmu requestu na databázi..
Fisak
Profil *
Jestli to dobře chápu tak to rovnou můmžu udělat <meta http-equiv="refresh" content="1">
_es
Profil
Fisak:
ak to rovnou můmžu udělat <meta http-equiv="refresh" content="1">
To sa ti znova načíta celá stránka aj so všetkými časťami - skriptami, obrázkami atď., zatiaľ čo pri AJAXe ti celá stránka zostáva stále načítaná, len si vyžiadaš cez JS na pozadí načítanie nejakého obsahu zo serveru a ten potom nejako spracuješ, napríklad ho zapíšeš do nejakej časti na stránke.
Ugo
Profil
tak sem to zrovna nemyslel, to přirovnání k prohlížeči kulhá na 8 nohou to musim přiznat.

ajax ti nerefreshne stránku, ale načte obsah jakoby nově otevřený stránky do JS, tam pak vyměníš obsah nějakého jednoho prvku na stránce za to cos dostal, takže ve výsledku se ti "refreshne" jenom kousek stránky. nejlíp uděláš když si to zkusíš.

zkus si ..

<?php
if(isset($_GET['a']) && $_GET['a']=="a") {
	echo "A ejhle zmena je tady<br>";
	echo "Je to změna číslo : ".$_GET['num'];
	die();
}
?>
<script src="http://tipmotor.cz/js.js"></script>
<script>
var num=0;
var a=setInterval(function() {num++;ajaxni('<?php $_SERVER['PHP_SELF'] ?>?a=a&num='+num,'xxx','')},1500);
</script>
Pevny obsah
<div id="xxx">
Tady nic neni
</div>

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