Autor | Zpráva | ||
---|---|---|---|
Vilak Profil |
Zdravím, chci udělat online chat na webu a nevím, jak. Vytvořit formulář, jeho text vložit do databáze a poté ho z tama vybrat mi nedělá problém... Ale nevím jak to udělat, aby to šlo hned, tedy když napíšu něco, tak, aby se to prakticky hned objevilo (nebo třeba po 5ti sekundové lhůtě, to je jedno). Chci tedy, aby to bylo tak, že když někdo napíše komentář a nebo ho napíši já, tak aby to šlo vidět bez toho, aniž by se aktualizovala stránka. Jak to udělat? Podle mě půjde o JS, se kterým moc neumím. Dyštak mě ještě napadlo, že by to šlo udělat na "aktualizování stránky" (vlastně jen toho chatu) třeba každých těch 5 sekund, takže by se vždycky po pár sekundách objevila (ta zpráva).
Jednoduše: Chci vytvořit online chat a nevím jak udělat, aby se komentáře zobrazovali i bez toho, aniž bych musel aktualizovat stránku. Za každou radu budu rád. |
||
xROAL Profil |
#2 · Zasláno: 10. 4. 2015, 21:10:40
Vilak:
„Dyštak mě ještě napadlo, že by to šlo udělat na "aktualizování stránky" (vlastně jen toho chatu) třeba každých těch 5 sekund“ Určite by ma nepotešilo keby píšem správu a v tom sa mi celá stránka refreshne. Šlo by sa tomu vyhnúť použitím rámov, čo je asi najjednoduchšie (aj keď zastaralé, ale funkčné) riešenie. „Podle mě půjde o JS, se kterým moc neumím.“ Áno, pôjde o JS, konkrétne hľadaj AJAX. Nie je to nič prehnane komplikované. Ak niečomu nebudeš rozumieť, alebo niečo dáš dokopy ale nebude to fungovať ako očakávaš, tak sa pokojne pýtaj ďalej, poradíme. |
||
Hando Profil |
#3 · Zasláno: 10. 4. 2015, 22:12:51
Ahoj.
Podle mého názoru se ti vymýšlet vlastní chat nevyplatí, pokud to nechceš dělat za účelem naučení se a máš na to dost času. Technicky může jít o již zmíněný ajax, jinak se to řeší třeba pomocí websockets, což zase nemusí umožňovat každý hosting (v základu)... Bylo by asi efektivnější použít (a třeba si upravit) nějaké již hotové řešení, do kterého již někdo svůj drahocenný čas vložil. :) Namátkově jsem koukal třeba na tohle a nevypadá to nijak špatně: https://frug.github.io/AJAX-Chat/ |
||
Zechy Profil |
#4 · Zasláno: 11. 4. 2015, 00:32:39
Hando:
„websockets, což zase nemusí umožňovat každý hosting (v základu)“ Přičemž na hostingu závisí, že se buď: a) musí spustit php skript v nekonečné smyčce (a nesmí být omezen max_execution_time!), co bude nonstop naslouchat socketové komunikaci b) musí se spustit program v kterémkoli jiném jazyce, co zvládne pracovat se sockety O websocketech(v rámci PHP) jsem při své prvotní zkušenosti sepsal článek, když jsem jej dělal pro ročníkovou práci. Funguje to šikovně, ale je třeba dotyčný skript spustit přes příkazovou řádku s parametrem -q, aby jej neomezil právě execution time, který by jinak po určené době zabránil skriptu naslouchat příchozí komunikaci a ukončil by jej. (viz článek). |
||
Vilak Profil |
Tak, udělal jsem to a už mi to funguje, ale pořád sa mi tam ukazuje jakási chyba o.O
mám soubor výpis-diskuze.php <?php 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>"; ?> <script type="text/javascript" src="../js/jquery-1.11.2.min.js"></script> <script type="text/javascript"> function refreshChat() { $.ajax({ type : "POST", url : "/scripty/vypis-diskuze.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); } }); } var refreshint=setInterval(refreshChat, 5000); </script> ... include "../scripty/vypis-diskuze.php"; tuto chybu to vypíše pokaždé (přepisuje se stále dokola), když sa vykoná script. kde je chyba? //edit VYŘEŠENO! |
||
Časová prodleva: 10 let
|
0