Autor | Zpráva | ||
---|---|---|---|
Alegor Profil |
Dobrý den,
mám tu takový problém. Chtěl bych udělat, že po kliknutí na tlačítko Odeslat se reloadne DIV #chat_zpravy, ve kterém je vložen soubor chat_vypis.php, ale zároveň by bylo dobré, kdyby se zachoval PHP script, který by to po kliknutí taktéž vykonávalo. Už jsem tu něco takového viděl, ale nefungovalo mi to. v jQuery se absolutně neorientuji, takže se předem omlouvám za drobné chyby, které tady budu dělat. Jinak soubor chat.php vypadá takto: <head> <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script> <script type="text/javascript"> setInterval(function() { $("#chat_zpravy").load(location.pathname + location.search + " #chat_zpravy > *"); }, 10000); </script> </head> <noscript>Chat ti nebude fungovat, protože ve tvém prohlížeči není zaplý JavaScript!</noscript> <?php if(isset($_POST["odeslat"])){ if($_POST["zprava"]){ $string_zprava = strlen($_POST["zprava"]); if($string_zprava <= 5000){ $zapis = mysql_query("INSERT INTO chat SET id_jmena='".$_SESSION["id"]."', zprava='".$_POST["zprava"]."', datum='".date("d. m. Y v H:i")."', ip='".$_SERVER["REMOTE_ADDR"]."', smazano='0';"); } else { echo "<script>alert('Zpráva může mít maximálně 5000 znaků!');</script>"; } } else { echo "<script>alert('Zadej zprávu!');</script>"; } } ?> <div class="chat_box"> <div id="chat_zpravy"> <?php include("chat_vypis.php"); ?> </div> <div class="chat_sys"> <form action="<?php $PHP_SELF; ?>" method="POST" name="formular"> <input type="text" name="zprava" id="chat_policko" /><br><br><button name="odeslat" value="Odeslat" id="tlacitko1">Odeslat</button> </form> </div> </div> A subor chat_vypis.php takto: <?php if(isset($_GET["smazat"])){ mysql_query("UPDATE chat SET smazano='1' WHERE id='".$_GET["smazat"]."';"); } $dotaz = mysql_query("SELECT * FROM chat WHERE smazano='0' ORDER BY `chat`.`id` DESC LIMIT 0 , 15 ;"); while($vypis = mysql_fetch_array($dotaz)): $id = $vypis["id"]; $id_jmena = $vypis["id_jmena"]; $zprava = $vypis["zprava"]; $datum = $vypis["datum"]; $ip = $vypis["ip"]; $dotaz_autor = mysql_query("SELECT * FROM uzivatele WHERE id='$id_jmena';"); $vypis_autor = mysql_fetch_array($dotaz_autor); $autor = $vypis_autor["jmeno"]; if($id&1){ $trida = "chat_prvni"; } else { $trida = "chat_druhy"; } ?> <div class="<?php echo $trida; ?>"> <span id="chat_jmeno"><a href="index.php?s=profil&id=<?php echo $id_jmena; ?>"><?php echo $autor; ?></a></span> - <?php echo $datum; ?><br> <?php echo $zprava; ?> <div class="chat_panel"> <?php if($_SESSION["opravneni"] == "ADMIN"){ echo "$ip<br><a href='index.php?s=uzivatel&u=chat&smazat=$id'><input type='submit' value='Smazat' id='tlacitko1' /></a>"; } ?> </div> </div> <?php endwhile; ?> |
||
Keeehi Profil |
#2 · Zasláno: 1. 8. 2012, 09:45:41
<form method="POST" name="formular"> <input type="text" name="zprava" id="chat_policko" /><br><br><input type="submit" name="odeslat" value="Odeslat" id="tlacitko1">Odeslat</button> </form> |
||
Alegor Profil |
Keeehi:
To jsem nějak nepochopil :-D Vždyť to žádný reload neudělá, je to jen formulář. Mohl by jste to ptosím podrobněji vysvětlit? Předem děkuji. :-) |
||
Keeehi Profil |
#4 · Zasláno: 1. 8. 2012, 10:29:47
Při odeslání formuláře se znovunačtení stránky provádí automaticky. To je normální věc.
|
||
Alegor Profil |
#5 · Zasláno: 1. 8. 2012, 10:38:43
Keeehi:
No jo, ale já chci načíst pouze DIV #chat_zpravy, ne celou stránku. |
||
_es Profil |
#6 · Zasláno: 1. 8. 2012, 10:50:14
Alegor:
„$("#chat_zpravy").load(location.pathname + location.search + " #chat_zpravy > *");“ To tuším nejako vyberá zo stiahnutých dát nejaký fragment. Prečo nesťahuješ len to, čo treba? |
||
Keeehi Profil |
#7 · Zasláno: 1. 8. 2012, 10:50:29
Alegor:
V tom případě budete muset formulář ajaxem odeslat a až přijde odpověď, znovu načíst #chat_zpravy. |
||
Alegor Profil |
#8 · Zasláno: 1. 8. 2012, 12:12:34
Keeehi:
Já se v Ajaxu a JavaScriptu absolutně nevyznám, mohl by jste mi sem zadat přesný script prosím? Předem děkuji. |
||
pcmanik Profil |
#9 · Zasláno: 1. 8. 2012, 12:25:48
Alegor:
Na zadanie presneho scriptu je tu sekcia prace a zakazky. Toto je len cesta ako ti poradit, nasmerovat ta spravnou cestou a nie ti napisat kompletny script. |
||
Časová prodleva: 3 měsíce
|
|||
Lukáš Knápek Profil * |
#10 · Zasláno: 23. 10. 2012, 13:03:44
Ahoj, zkus se podívat na tento článek: http://www.nullpointer.cz/refresh-reload-ajaxoveho-obsahu-nacteneho-pomoci-jquery
|
||
Časová prodleva: 14 dní
|
|||
Alegor Profil |
#11 · Zasláno: 6. 11. 2012, 08:32:51
Lukáš Knápek:
Ahoj, mockrát ti děkuji. Momentálně s tím chatem moc nedělám, ale určitě se na to podívám. :-) |
||
Časová prodleva: 11 let
|
0