Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: tablica dwuwymiarowa - value z pętli - problem
Forum PHP.pl > Forum > PHP
spiewak69
Próbuje zrobić " salę kinową " z checboxami ale mam problem z opcją value w inpucie .
Oprzeć próbuje to na tablicy dwuwymiarowej . ( oczywiscie w formularzu przekazuje przez POST )

  1.  
  2.  
  3. for ($j=1; $j<=10; $j++){
  4. for($i=1 ; $i <= 10 ; $i++ ){
  5.  
  6. ?>
  7. <input type="checkbox" name="place[rzad][miejsce]" value="<?php [$j][$j] ; ?> "><?php echo $i ;echo "-" ;echo $j ; ?>
  8. <?php }echo "<br>";
  9. }?>
  10.  
  11.  



gdy zaznacze jakiegos checboxa i chce sprawdzic tablicę POST to pokazuje mi

Array ( [place] => Array ( [rzad] => Array ( [miejsce] =>
Notice: Undefined offset: 1 in sala.php on line 44
) ) )
Turson
Przydałoby się jakieś echo w value
Poza tym wydaje mi się, że wystarczyłby jakiś separator między $j a $i w value, odbierając wartośc robisz explode i wiesz co jest czym
com
Np coś takiego :
  1. <?php
  2. for ($j=1; $j<=10; $j++){
  3. for($i=1 ; $i <= 10 ; $i++ ){
  4. echo "<input type=\"checkbox\" name=\"place[]\" value=\"$i,$j \">$i - $j " ;
  5. }
  6. }
  7.  
  8. if(isset($_POST['place'])){
  9. foreach ($_POST['place'] as $val )
  10. var_dump(explode(",",$val));
  11. }
YourFrog
Według mnie sala kinowa to jest dosyć skomplikowany problem ponieważ np w warszawie IMAX czy multikino nie mają miejsc siedzących na planie prostokąta tylko raczej coś co pokazuje niżej na obrazku i osobiście albo robiłbym go na elemencie map w html'u albo na canvasie.

Poniżej przykładowy kod. Pisałem go 15 minut w pracy także wiele pozostawia do życzenia (pomijam fakt ze z JS to ja noga jestem haha.gif). Na przykładzie każde miejsce ma 4 stany które decydują o wyświetlonym kwadraciku na ekranie. Stanu czarnego i czerwiobegi nie można zmienić. Później to tylko przy wciśnięciu przycisku pchać do posta i włala.

- Czarny - Tam gdzie ludki chodzą
- Czerwony - Ludki wcześniej zarezerowały
- Biały - Można kupić
- Zielony - Chcesz kupić

Screen: http://scr.hu/1dwz/8vki2
  1. <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  2. <script src="https://raw.githubusercontent.com/caleb531/jcanvas/master/jcanvas.min.js"></script>
  3. var SQUARE_SIDE = 16;
  4. var SQUARE_COLOR_START = 0;
  5. var SQUARE_COLOR_FINISH = 3;
  6.  
  7. var SQUARE_COLOR_WHITE = 1;
  8. var SQUARE_COLOR_GREEN = 2;
  9. var SQUARE_COLOR_RED = 3;
  10.  
  11. var SQUARE_DISABLED = [0, 3];
  12.  
  13. var places = [
  14. [ 0, 0, 0, 0, 0, 0, 0 ],
  15. [ 0, 0, 1, 1, 1, 0, 1, 1 ],
  16. [ 0, 1, 1, 1, 1, 0, 1, 1 ],
  17. [ 0, 1, 1, 1, 1, 0, 1, 1 ],
  18. [ 0, 1, 1, 1, 1, 0, 1, 1 ],
  19. [ 1, 1, 1, 3, 3, 1, 1, 1 ],
  20. [ 1, 1, 1, 1, 1, 1, 1, 1 ],
  21. [ 1, 3, 1, 1, 1, 1, 1, 1 ]
  22. ];
  23.  
  24. $(document).ready(function(){
  25. $('canvas').attr("width", (places[0].length + 1) * SQUARE_SIDE).attr("height", places.length * SQUARE_SIDE);
  26.  
  27. drawMap();
  28.  
  29. $('canvas').click(function(evt){
  30. var y = Math.floor(evt.offsetY / SQUARE_SIDE)
  31. var x = Math.floor(evt.offsetX / SQUARE_SIDE);
  32.  
  33. if( $.inArray(places[y][x], SQUARE_DISABLED) != -1 )
  34. return;
  35.  
  36. places[y][x] += 1;
  37.  
  38. if( places[y][x] == SQUARE_COLOR_RED )
  39. places[y][x] = SQUARE_COLOR_WHITE;
  40.  
  41. drawMap();
  42. });
  43. });
  44.  
  45. function drawMap()
  46. {
  47. for( var y = 0; y < places.length; y++ )
  48. for( var x = 0; x < places[y].length; x++ )
  49. {
  50. var color = '#000';
  51. switch(places[y][x])
  52. {
  53. case SQUARE_COLOR_WHITE: color = '#FFF'; break;
  54. case SQUARE_COLOR_GREEN: color = 'green'; break;
  55. case SQUARE_COLOR_RED: color = 'red'; break;
  56. }
  57.  
  58. $('canvas').drawRect({
  59. fillStyle: color,
  60. x: x * SQUARE_SIDE, y: y * SQUARE_SIDE,
  61. width: SQUARE_SIDE - 1,
  62. height: SQUARE_SIDE - 1,
  63. fromCenter: false
  64. });
  65. }
  66. }
  67. </script>
  68. canvas { background: black; }
  69. </style>
  70. </head>
  71. <canvas width="200" height="200"/>
  72. </body>
  73. </html>
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.