Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php+ajax]Dzialanie w czasie rzeczywistym
marcio
post
Post #1





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


EDIT: ok troche pokombinowalem i cos juz odswierza ale tylko 1 raz (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) i wiadomosci nie chca sie dodac poprzez ajax oto kod

Glowny plik shout'a shout.php
  1. <?php
  2. if(isset($_COOKIE['name']) && isset($_COOKIE['code']) && isset($_COOKIE['prawa']) && isset($_COOKIE['vip']) && $_COOKIE['prawa'] == 3) {
  3. include('config1.php');
  4. echo('<html><body>
  5. <head>
  6. <script type="text/javascript" src="mintAjax.js"></script>
  7. <script type="text/javascript">
  8.  
  9. function refresh() {
  10. var req = mint.Request();
  11.  
  12. req.OnSuccess = function() {
  13. $("response").innerHTML = this.responseText.toUpperCase();
  14. }
  15.  
  16. req.Send("czytaj.php");
  17. }
  18.  
  19.  
  20. function dodaj() {
  21. var req = mint.Request();
  22. req.AddParam("wpis", $("wpis").value);
  23. req.Send("wpis.php", "response");
  24. }
  25.  
  26. //setInterval("refresh()",1000);
  27. setTimeout("refresh()",1000);
  28. </script>
  29. </head>
  30. <h2>Shout</h2>
  31. <form action="'.$_SERVER['PHP_SELF'].'" method="post" id="form" onsubmit="dodaj(); return false;">
  32. <textarea name="wpis" rows="3" cols="20" style="background-color:#ECECEC; color:#000000; border: 1px solid red;">Wpis</textarea>
  33. <input type="submit" name="dodaj" value="Dodaj" style="background-color:#ECECEC; color:#000000; border: 1px solid blue;">
  34. </form>');
  35.  
  36. echo('<div id="response"></div></body></html>');
  37. }
  38. else echo('<html><body><h1>Dostepn do tej czesci strony zabrionony</h1>/<body></html>');
  39. ?>


Czytaj.php
  1. <?php
  2. include('config1.php');
  3. echo('<html><body>');
  4.  
  5. if($db = mysql_connect($pasy['host'], $pasy['login'], $pasy['haslo'])) {
  6. mysql_select_db($pasy['baza']);
  7.  
  8. $query4 = ('select * from shout order by id desc limit 5');
  9. $wynik4 = mysql_query($query4, $db);
  10.  
  11. echo('<table align="left">');
  12.  
  13. while($ksiega = mysql_fetch_assoc($wynik4)) {
  14.  
  15. $query5 = ('select * from users where login = "'.$ksiega['nick'].'"');
  16. $result = mysql_query($query5, $db);
  17. $lvl = mysql_fetch_assoc($result);
  18.  
  19. if($lvl['lvl'] == 3) $user = '<b style="color:#FF0000">$'.$ksiega['nick'].'</b>';
  20. else if($lvl['lvl'] == 2) $user = '<b style="color:#009900">+'.$ksiega['nick'].'</b>';
  21. else if($lvl['lvl'] == 1 && $lvl['vip'] != 'nie') $user = '<b style="color:#000080">^'.$ksiega['nick'].'</b>';
  22. else if($lvl['lvl'] == 1) $user = '<b style="color:#000000">~'.$ksiega['nick'].'</b>';
  23.  
  24. $wpis = wordwrap(stripslashes($ksiega['wpis']), 20, "r\n", 1);
  25.  
  26. <tr><td><font size="1"><a href="user.php?user='.$ksiega['nick'].'">'.$user.'</a></font> '); 
  27. if($_COOKIE['prawa'] == 2 || $_COOKIE['prawa'] == 3) echo(' <font size="1"><a style="color:#3333FF" href="?action=del&id='.$ksiega['id'].'">[usun]</a></font>');
  28. echo('</td></tr><tr><td><p style="font-size:12px">'.$wpis.'</p></td></tr>');
  29.  }
  30. }
  31. echo('</table></body></html>');
  32. ?>


Wpis.php
  1. <?php
  2.  
  3. include('config1.php');
  4.  
  5. if($db = mysql_connect($pasy['host'], $pasy['login'], $pasy['haslo'])) {
  6. mysql_select_db($pasy['baza']);
  7.  
  8. if(!empty($_POST['wpis']) && isset($_POST['dodaj'])) {
  9.  
  10. if(strlen($_POST['wpis'] < 150)) {
  11.  
  12. $nick = $_COOKIE['name'];
  13. $wpis = addslashes(htmlspecialchars($_POST['wpis']));
  14. $data = date('j/n/Y H:i:s');
  15.  
  16. $nowy = ("insert into shout(nick,wpis,data) values('$nick', '$wpis', '$data')");
  17. mysql_query($nowy, $db);
  18. }
  19. }
  20.  
  21. if(isset($_GET['action']) && $_GET['action'] == 'del') {
  22.  
  23. if($_COOKIE['prawa'] == 2 || $_COOKIE['prawa'] == 3) {
  24.  
  25. mysql_query('delete from shout where id = '.(int)$_GET['id'].'');
  26.  
  27. }
  28.  }
  29. }
  30. ?>


Jednak nie dziala zabardzo jak juz napisalem laduje sie tylko raz potem sa duze litery widzialem gdzies funckje na male ale juz nie pamietam gdzie i do tego nie dodaje wiadomosci za pomoca ajax moze ktos powiedziec co zle robie??

P.S prosze nie patrzec na kod to tylko pseudo kod narazie ma chodzic nawet zabezpieczony nie jest (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

P.S dodam ze mam taki blad w konsoli
Cytat
Błąd: dodaj is not a function
Plik źródłowy: http://www.marcio.szu.pl/shout.php
Wiersz: 1


Ten post edytował marcio 28.04.2008, 11:51:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Ok poradzilem sobie w pewnym sensie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) odswierza i dodaje wpisy
  1. <?php
  2. echo('<html><body>
  3. <head>
  4. <script type="text/javascript" src="mintAjax.js"></script>
  5. <script type="text/javascript">
  6.  
  7. function refresh() {
  8. var req = mint.Request();
  9.  
  10. req.OnSuccess = function() {
  11. $("response").innerHTML = this.responseText.toUpperCase();
  12. }
  13.  
  14. req.Send("czytaj.php");
  15. setTimeout("refresh()",5000);
  16. }
  17.  
  18.  
  19. function dodaj() {
  20. var req = mint.Request();
  21.  
  22. req.OnSuccess = function() {
  23. $("response").innerHTML = this.responseText;
  24. }
  25.  
  26. req.SendForm("form");
  27. }
  28.  
  29. setTimeout("refresh()",1000);
  30. </script>
  31. </head>
  32. <h2>Shout</h2>
  33. <form action="wpis.php" method="post" id="form">
  34. <textarea name="wpis" rows="3" cols="20" style="background-color:#ECECEC; color:#000000; border: 1px solid red;">Wpis</textarea>
  35. </form>
  36. <button onclick="dodaj()" style="background-color:#ECECEC; color:#000000; border: 1px solid blue;">Wyślij formularz</button>');
  37.  
  38. echo('<div id="response"></div></body></html>');
  39. ?>

I jest good jednak jest jeszcze cos co mi sie nie podoba ta funkcja this.responseText.toUpperCase(); zmienia wszystkie znaki na duze i powieksza wszystko widzialem gdzies funckje ktora zamiebia wszystko na male znaki ale nie pamietam jej nazwy czy ktos moze podac lub ogolnie funckje zeby teskt mial jego normalna wartosc a nie ze wszystko musi byc duze albo male??

Jeszcze jedno nie wiem czy to wina wielkich liter ale tak mi sie nie zdaje ale gdy klikam na link usun w pliku testowym tam gdzie jest ajax to on wiadomosc sie nie usuwa nawet gdy zmienie wielkie litery na takie jakie powinny byc czy poprostu dla linku mam dodac tez zdarzenie onclick(); z funcka wysylaja tresc metoda get do pliku wpis.php??

Czyli tak
  1. <?php
  2. //wyswietlanie linka
  3. if($_COOKIE['prawa'] == 2 || $_COOKIE['prawa'] == 3) echo(' <font size="1"><a onclick="usun()" style="color:#3333FF" href="?action=del&id='.$ksiega['id'].'">[usun]</a></font>');
  4.  
  5. // i tdo tego dodac taka funkcje w ajax
  6.  
  7. function usun() {
  8.  
  9. var req = mint.Request();
  10. req.AddParam("action", "action=del");
  11. req.AddParam("id", $("id").value);
  12. req.Send("wpis.php", "response");
  13. }
  14. ?>

Czy dobrze mowie bo nie wiem co zrobic z tym usuwaniem albo to wina php oczywiscie plik wpis.php ma nadal taka sama zawartosc jak ta co podalem w pierwszym poscie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


P.S jak to optymalizowac bo widze ze nie dziala to jak profesjonalny shout w php+js+ajax czy tam w javie tylko poprostu dziala na zasadzie wysyla zapytania w tle i tyle a co z streaming html czy cos takiego trudne jest to do zastosowania??
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 08:25