Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] "Uajaxowienie" Czatu.
Forum PHP.pl > Forum > Przedszkole
bartek4175
Witam! Chciałbym zrobić aby mój czas sam się odświeżał co 5 sekund. ale tak płynnie ajaxem. i aby przy wysyłaniu wiadomości nie przeładowywała się strona.

Kod:
  1. <?php
  2. require_once("../zapytania.php");
  3. mysql_connect ("mysql3.superhost.pl","sh178151_admin","xxx"); //łącze z bazą ("serwer bazy","użytkownik","hasło")
  4. mysql_select_db ("sh178151_bartek4175"); //nazwa bazy
  5. mysql_query ("SET NAMES utf8"); //kodowanie znaków przydatne przy pobieraniu treści
  6.  
  7. function emotki($string) {
  8.  
  9. $emotikony = array(":D" => "http://firegifts.pl/images/emoticons/smilie5.gif",":)" => "http://firegifts.pl/images/emoticons/wink.gif", "lol2" => "http://emotikona.pl/emotikony/pic/01icon_lol2.gif", ":(" => "http://emotikona.pl/emotikony/pic/0sad.gif", ":P" => "http://emotikona.pl/emotikony/pic/0tongue.gif", "kurwa" => "http://firegifts.pl/images/emoticons/censored.gif", "huj" => "http://firegifts.pl/images/emoticons/censored.gif", "google" => "http://emotikona.pl/emotikony/pic/14icon_google.gif");
  10. foreach($emotikony as $tekst => $grafika) $string = str_replace($tekst,'<img src="'.$grafika.'" />',$string);
  11.  
  12. return $string;
  13. }
  14. $admin = mysql_query("SELECT * FROM users WHERE id = ".$data['id']."") or die;
  15.  
  16.  
  17.  
  18. ?><?
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25. if(isset($_POST['wyslij']) && !empty($_POST['login']) && !empty($_POST['tresc']))
  26. {
  27. //Definicja zmiennych
  28. $login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
  29. $tresc = mysql_real_escape_string(htmlspecialchars($_POST['tresc']));
  30. $data = date('Y-m-d H:i:s');
  31. $ip = $_SERVER['REMOTE_ADDR'];
  32.  
  33. //Wykonujemy zapytanie importujące zdefiniowane dane
  34. mysql_query ("INSERT INTO `posty` (`login`, `tresc`, `data`, `ip`) VALUES('$login', '$tresc', '$data', '$ip')");
  35.  
  36. //No i przenosimy użytkownika z powrotem do shoutboxa
  37. header('Location: '.$_SERVER['REQUEST_URI']);
  38. }
  39. else {
  40. //Pobieramy dane z bazy
  41. $query = mysql_query ("SELECT * FROM `posty` ORDER BY `data` DESC LIMIT 10");
  42. //Początek struktury tabeli
  43. echo '<table id="shoutbox">';
  44. //Pętla do wyświetlenia wszystkich wpisów
  45. while($shout=mysql_fetch_array($query)) {
  46. echo emotki('<tr class="wpis"><td>'
  47. .'<b> ');
  48.  
  49. echo emotki(''.$shout['login'].':</b></span> ' //wyświetlamy nick
  50. .$shout['tresc'] //wyświetlamy treść
  51. .'<br/><span class="data">'
  52. .$shout['data'] //wyświetlamy datę
  53. .'</span> ');
  54.  
  55. if (($data['admin']) == 1){
  56. if (isset($_GET['akcja']))
  57. {
  58. switch ($_GET['akcja'])
  59. {
  60. case 'usun':
  61. mysql_query("DELETE FROM `posty` WHERE id = '" . (int)$_GET['id'] . "'") or die(mysql_error());
  62.  
  63. break;
  64. }
  65. }
  66. ?><a href="/chat/index.php?akcja=usun&id=<? echo''.$shout['id'].''; ?> "> <span style="color:red;"><b>X</b></a></span><?
  67. }
  68. if (($data['admin']) == 1){
  69. if (isset($_GET['akcja']))
  70. {
  71. switch ($_GET['akcja'])
  72. {
  73. case 'spamer':
  74. mysql_query("UPDATE `users` SET spamer='1' WHERE `login` = '".$_GET['login']."'") or die(mysql_error());
  75.  
  76.  
  77. break;
  78. }
  79. }
  80. ?><a href="/chat/index.php?akcja=spamer&login=<? echo''.$shout['login'].''; ?> "> <span style="color:green;"><b>S</b></a></span><?
  81. }
  82. echo emotki('</tr></td>');
  83. } //
  84.  
  85.  
  86. //Koniec struktury tabeli
  87. echo '</table>';
  88.  
  89. }
  90.  
  91.  
  92.  
  93. //print_r($_SERVER);
  94. if($data['spamer'] == 1){
  95. echo "<b><center>Posiadasz Status Spamera!</center></b>";
  96. } else {?>
  97. <form action="" method="POST" id="shoutbox">
  98. <?php require_once("../zapytania.php"); echo'<input type="hidden" name="login" value="'.$data['login'].'" />'; ?><br/>
  99. Treść: <input type="text" name="tresc" maxlength="125" />
  100. <button type="submit" name="wyslij">Napisz</button>
  101. </form>
  102. <?
  103. }
  104. ?>
nospor
No to wypadaloby zapoznac sie z ajaxem. Uzyj jQuery
bartek4175
Cytat(nospor @ 1.02.2014, 16:55:38 ) *
No to wypadaloby zapoznac sie z ajaxem. Uzyj jQuery

A jest jakiś konkretny poradnik?
nospor
Tak, dokumentacja jQuery. Korzystanie z ajax przy pomocy jQuery to bulka z maslem. Wykonaj wpierw przyklady podane przez nich, zrozum o co chodzi, potem zajmiesz sie swoim czatem
Turson
Ostatnio pisałem chat, więc możesz zobaczyć jak to wygląda.
bartek4175
Cytat(nospor @ 1.02.2014, 16:58:17 ) *
Tak, dokumentacja jQuery. Korzystanie z ajax przy pomocy jQuery to bulka z maslem. Wykonaj wpierw przyklady podane przez nich, zrozum o co chodzi, potem zajmiesz sie swoim czatem

Mam skrypcik:
  1. echo "<body>\n";
  2. echo '<p id="licznik">Dziś jest '.date("d-m").', godzina '.date("H:i:s") ?>
  3. </p><?
  4. echo "</body>\n";


  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3. var set = setInterval(function(){
  4. $("p#licznik").load(location.href);
  5. }, 1000);
  6.  
  7. });
  8. </script>


ale nie odświeża czasu sad.gif
Turson
A w ogóle dodałeś bibliotekę jquery do sekcji <head> dokumentu?
nospor
A skad wytrzasnales ten kod? Bo jest srednio fajny...na pewno nie wprowadziles wlasnych zmian?
bartek4175
Cytat(Turson @ 1.02.2014, 17:29:58 ) *
A w ogóle dodałeś bibliotekę jquery do sekcji <head> dokumentu?

No nie sad.gif A jak to zrobić? sad.gif Podstawy sad.gif(
Turson
  1. <script src="http://code.jquery.com/jquery-latest.min.js"></script>
  2. </head>
bartek4175
podpiąłem pod zapytanie i ciągle pojawia mi się nowe i znika nie tego chciałem ...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.