Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

Korzystanie z canvas za pomocą AJAX



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Webmasterstwo
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
InfinityDimension



Dołączył: 17 Maj 2016
Posty: 1

PostWysłany: Wto Maj 17, 2016 5:04 pm  OP    Temat postu: Korzystanie z canvas za pomocą AJAX Odpowiedz z cytatem Pisownia

Chciałem żeby kilku użytkowników klikało na krzyżyki i żeby każdy widział efekty(żeby znikały i pojawiały
się te same krzyżyki).
Napisałem tą aplikacje w celach testowych, ponieważ dopiero uczę się programowania webowego,
lecz nie działa to prawidłowo. Skrypt php chyba jest dobrze napisany. Myślę że jest coś źle w pliku z js.
Byłbym też wdzięczny gdyby ktoś mi pomógł i powiedział mi co zrobić, aby dane o krzyżykach były
nie w pliku, tylko w skrypcie i żeby dopiero gdy ostatnia osoba opuści stronę, ładowało się do pliku,
a gdy potem, ktoś wejdzie na stronę znowu było pobierane z pliku.
Z góry dziękuję za pomoc.
Kod:
<html>
<head>
<title>tesciczek</title>
</head>
<body>
<canvas style="background:#F0F0F0" id="krzyzyki" width="150" height="150" />
<script>
var tab = [[0,0,0],[0,0,0],[0,0,0]];
//var tab = new Array();
//var tablica = [ [11, 12], [21, 22], [31, 32] ];
/*
tab[0][0]=false;
tab[0][1]=false;
tab[0][2]=false;

tab[1][0]=false;
tab[1][1]=false;
tab[1][2]=false;

tab[2][0]=false;
tab[2][1]=false;
tab[2][2]=false;
*/
var X=0;
var Y=0;
//var tabt = new Array();
var zmiana=0;
var bok =40;
var ctx=document.getElementById("krzyzyki").getContext('2d');
function rysujKrzysz(x,y)
{
    //ExtendFirefoxEvent(e);
  ctx.moveTo(bok*x, bok*y);
  
  ctx.lineTo(bok*x+bok,bok*y+bok);
  ctx.stroke();
  ctx.moveTo(bok*x, bok*y+bok);
  
  ctx.lineTo(bok*x+bok,bok*y);
  ctx.stroke();
}
function marz(x,y)
{
//    ctx.rect(x*bok,y*bok,bok,bok);
ctx.fillStyle = "#FFFFFF";
ctx.fillRect(x*bok,y*bok,bok,bok);
ctx.fill();
}
function czysc()
{  
    ctx.fillStyle = "#00FF00";
ctx.fillRect(0,0,150,150);
ctx.fill();
}
var zablokuj=false;
xmlhttp=new XMLHttpRequest();
function odebrane()
{
    
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
          var con=xmlhttp.responseText;
         // alert(con);
          var temp=con.split(" ");
          var m=0;
          
          for(var i =0 ;i<3;i++)
          {
              for(var j=0;j<3;j++)
              {
                  tab[i][j]=parseInt(temp[m]);
              
                      m++;
              }
          }
          m=0;
          zablokuj=false;
}
zablokuj=false;
}
xmlhttp.onreadystatechange=odebrane;
function process()
{
       if(!zablokuj){
       czysc();
    for(var i=0;i<3;i++)
        for(var j=0;j<3;j++)
        {
            if(tab[i][j])rysujKrzysz(j,i);
            else
            marz(j,i);
        }
       }
        zablokuj=true;
              xmlhttp.open("GET","s2.php?czy=0"+"&X="+X.toString()+"&Y="+Y.toString(),true);
          xmlhttp.send(null);
          zmiana=0;
          
    setTimeout("process()",500);
}
  function nacmysz(e)
  {
    zablokuj=true;
      X=Math.floor(e.layerX/bok);
    Y=Math.floor(e.layerY/bok);
    zmiana=1;
        xmlhttp.open("GET","s2.php?czy=1"+"&X="+X.toString()+"&Y="+Y.toString(),true);
      xmlhttp.send(null);
  
}
  krzyzyki.addEventListener("mousedown", nacmysz, false);
  process();

  </script>
  </body>
  </html>


i plik ze skryptem php
Kod:
<?php
$czy = $_REQUEST['czy'];
$X = $_REQUEST['X'];
$Y = $_REQUEST['Y'];
settype($X, 'integer');
settype($Y, 'integer');
$filename = "tablicunia.txt";
$content = file($filename);
$array = explode(" ", $content[0]);
$krzyzyki = $content[0];
if((int)$czy)
{
    if((int)($array[$Y*3+$X]))$array[$Y*3+$X]='0';
    else
    $array[$Y*3+$X]='1';
    
    $krzyzyki = implode(" ", $array);
    $fp = fopen($filename,"w");
    fputs($fp,$krzyzyki);
    fclose($fp);
}

?>
<?php echo($krzyzyki);
//echo($czy);
//echo($X);
//echo($Y);
?>

Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
lethern



Dołączył: 09 Paź 2007
Posty: 1087

PostWysłany: Sro Cze 29, 2016 1:14 pm      Temat postu: Odpowiedz z cytatem Pisownia

możemy pomóc rozwiązać błąd, ale nie wskazałeś jaki on jest, ani gdzie jest...

bo to że "coś, gdzies, chyba" nie działa, to jest chleb powszechny każdego programisty i z takim ogólnikiem to się z raczej jeszcze na forum nie idzie

poza tym poczytaj o formatowaniu kodu, bo niektórzy (np. ja) nie zaczną go nawet czytać jak tak ma wyglądać

_________________
używasz Dev-Cpp? tools->editor options -> use tab character (włącz), smart tabs (wyłącz)... albo ściągnij np. Visual Studio C++ free.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
djsowa
Moderator


Dołączył: 28 Mar 2006
Posty: 2238
Skąd: Warszawa

PostWysłany: Sro Cze 29, 2016 3:05 pm      Temat postu: Odpowiedz z cytatem Pisownia

Kod:
function rysujKrzysz(x,y)

:D

P.S. Ajax nie służy do tego, jeśli chcesz reagować na klikniecia uzytkowników i notyfikować pozostałych o zaznaczonych miejscach musisz użyć socketów:
http://socketo.me/
http://www.phpbuilder.com/articles/application-architecture/optimization/creating-real-time-applications-with-php-and-websockets.html
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Webmasterstwo Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.02416 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |