Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zablokowanie odświeżania strony
Geniesis
post
Post #1





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 4.12.2013
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Witam! Ponieważ uczę się PHP postanowiłem napisać w tym właśnie języku prostą gre "saper" niestety mam problem, ponieważ za każdym razem gdy nacisnę input to strona sie odświeża, co z tym idzie nie można przetestować dalszego kodu czy działa poprawie ze względu na reset wszystkiego. Czy moglibyście mi poradzić jak mam rozwiązać ten problem? Ew. jeżeli istnieje jakieś inne lepsze rozwiązanie podsunąć mi je.
Drugim "estetycznym" problemem jest dla mnie napisanie warunku: czy da się if z linii 20 zapisać prościej w stylu linii 23?


  1. <?php
  2. // zmienne for: r a i b c
  3. //$bomb[]
  4. //$man[] tablica pokazujaca ile bomb obok
  5. //write tablica wypisujaca
  6. $wyn = 0; //sprawdza czy wygrales
  7. $dis = 0; //blokowanie tablicy
  8. $bomb[1] = 23;
  9. $bomb[2] = 43;
  10. //losuje miejsca $bomb
  11. for ($r = 1; $r<11; $r++){
  12. //$bomb[$r] = rand(1,100);
  13. echo $bomb[$r]. " ";
  14. }
  15. if (isset($_POST[$a])){
  16. for($i = 1; $i < 101;$i++){ //sprawdza czy klikniecie w $bombe
  17. for ($b = 1; $b < 11; $b++){
  18. if($a != $bomb[$b]){
  19. for($c = 1; $c < 11; $c++){ // sprawdza ile bomb jest obok
  20. if (($a - 1 == $bomb[$c]) && ($a != 11) && ($a != 21) && ($a != 31) && ($a != 41) && ($a != 51) &&
  21. ($a != 61) && ($a != 71) && ($a != 81) && ($a != 91)){$man[$a]++; $dis = 1;}
  22.  
  23. if (($a + 1 == $bomb[$c]) && ($a % 10 == 0)){$man[$a]++; $dis = 1;}
  24.  
  25. if (($a - 11 == $bomb[$c]) && ($a != 11) && ($a != 21) && ($a != 31) && ($a != 41) && ($a != 51) &&
  26. ($a != 61) && ($a != 71) && ($a != 81) && ($a != 91)){$man[$a]++; $dis = 1;}
  27.  
  28. if (($a - 10 == $bomb[$c])){$man[$a]++; $dis = 1;}
  29.  
  30. if (($a - 9 == $bomb[$c]) && ($a % 10 == 0)){$man[$a]++; $dis = 1;}
  31.  
  32. if (($a + 9 == $bomb[$c]) && ($a != 11) && ($a != 21) && ($a != 31) && ($a != 41) && ($a != 51) &&
  33. ($a != 61) && ($a != 71) && ($a != 81) && ($a != 91)){$man[$a]++; $dis = 1;}
  34.  
  35. if (($a + 10 == $bomb[$c])){$man[$a]++; $dis = 1;}
  36.  
  37. if (($a + 11 == $bomb[$c]) && ($a % 10== 0)){$man[$a]++; $dis = 1;}
  38.  
  39. else{$man[$a] = ""; $dis = 1;} //jezeli nie ma
  40. }
  41. }
  42. if($a == $bomb[$b]){
  43. echo "przegrales";
  44. break;
  45. }
  46. $wyn++;
  47. if ($wyn == 90){
  48. echo "wygrales";
  49. }
  50. }
  51. }
  52. }
  53.  
  54. ?>
  55. <html>
  56. <head>
  57. <script language ="JavaScript">
  58. var sek = 0;
  59. setInterval("add()",1000);
  60. function add(){
  61. sek++;
  62. refresh();
  63. }
  64. function refresh(){
  65. document.getElementById("stoper").innerHTML = sek;
  66. }
  67. </script>
  68. </head>
  69. <body>
  70. <form id = "ff" method ="POST">
  71. <div id = "stoper">0</div>
  72. <div align = "center">
  73. <table cellspacing = "0" cellpadding ="0">
  74. <tr>
  75. <?php
  76. for ($a = 1; $a < 101; $a++){
  77. echo "<td>";
  78. echo "<form id = \"ff[$a]\" method = \"POST\">";
  79. echo "<input type = \"submit\" name = \"$a\" value = \"$man[$a]\""; if ($dis == 1){ echo "disabled = \"disabled\""; } echo "/>";
  80. echo "</form>";
  81. echo "</td>";
  82. if(($a % 10 == 0)){
  83. echo "</tr>";
  84. echo "<tr>";
  85. }
  86. }
  87. ?>
  88. </tr>
  89. </table>
  90. </div>
  91. </form>
  92. </body>
  93. </html>


Ten post edytował Geniesis 4.12.2013, 19:51:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Geniesis
post
Post #2





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 4.12.2013
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Troszeczkę nie wiem czy traktujesz mnie poważnie, nie jest tak, że nie próbowałem, jeżeli coś mi nie działa, staram się to pisać prościej by zaczęło działać, wtedy dopiero staram się dość do tego dlaczego wcześniej nie działało. Może zająć to więcej czasu ale jakoś się trzeba nauczyć. Z tablicami miałem już dużo do czynienia w innych językach, jedynie w php idzie mi to topornie, nie oczekuję, że napisze mi ktoś kod za mnie, chciałem prosić o wytłumaczenie bardziej co może być powodem, że nie działa, tutaj była odp. na temat użycia sesji niestety pisząc kiedyś jakiś prosty portal (logowanie, wczytanie danych) użyłem tablic co nie działało, nawet nauczyciel nie potrafił odpowiedzieć do końca dlaczego, stąd moje zrażenie, a w powyższym kodzie bez nich ciężko się obejść. I tak błądze i głupieje, bo nie wiem jak można inaczej. Najprościej dla mnie byłoby zrobić tak by strona się nie odświeżała wtedy też problem z zablokowaniem inputów prawdopodobnie znikł, choć to PHP nie JS, więc bardzo możliwe, że się nie da...
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 30.12.2025 - 06:38