PHP - AYUDA SOY NUEVO PROGRAMANDO ES PARA CURSO

 
Vista:
sin imagen de perfil

AYUDA SOY NUEVO PROGRAMANDO ES PARA CURSO

Publicado por olbany (2 intervenciones) el 01/06/2017 21:56:01
buenas tardes necesito una mano es algo basico pero no he dado como hacerlo se trata de un programita de reservas de puestos segun el programa yo tengo que elegir el puesto a reservar segun la fila y la columna
y con un checbox darle comprar o reservar y al darle enviar se modifique el puesto que yo escogi con el valor
del checbox pero todo esto dentro de la misma pagina sin mysql sin base de datos la verdad no se como es
les agradeceria una ayudita con este codigo que tengo se ve como en la imagen pero no logro hacer que cada puesto se modifique segun yo lo escogo gracias por su atencion.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<!DOCTYPE html>
<html>
    <head>
        <title>Unidad 2 - arraglos</title>
        <link rel="stylesheet" type="text/css" href="css/estilos.css"/>
        <meta http-equiv="Content-Type"
              content="text/html; charset=ISO-8859-1" />
    </head>
    <body>
 
        <!Olbany andres torres cespedes
         * Desarrollo web con php 1427558
          Evidencia2_olbany andres torres>
 
        <!creacion de la tabla para los titulos como yo las se hacer>
 
        <table border ="2">
            <tr>
            <table border="1" class="troll">
 
                <thead>
                    <tr>
                        <th>PUESTOS ESCENARIOS </th>
 
                    </tr>
 
            </table>
 
            </tr>
 
        </table>
         <?php
 
       /* creacion de un arreglo multidiemcional asociativo*/
 
        $datosPersonas =  array(
 
            array(  'T'=>"Ti",
                    'P1'=>"-1-",
                    'P2'=>"-2--",
                    'P3'=>"-3--",
                    'P4'=>"-4--",
                    'P5'=>"-5--"),
 
            array(
                    'T'=>"1",
                    'P1'=>"libre",
                    'P2'=>"libre",
                    'P3'=>"libre",
                    'P4'=>"libre",
                    'P5'=>"libre"),
              array(
                    'T'=>"2",
                    'P1'=>"libre",
                    'P2'=>"libre",
                    'P3'=>"libre",
                    'P4'=>"libre",
                    'P5'=>"libre"),
            array(
                    'T'=>"3",
                    'P1'=>"libre",
                    'P2'=>"libre",
                    'P3'=>"libre",
                    'P4'=>"libre",
                    'P5'=>"libre"),
            array(
                    'T'=>"4",
                    'P1'=>"libre",
                    'P2'=>"libre",
                    'P3'=>"libre",
                    'P4'=>"libre",
                    'P5'=>"libre"),
            array(
                    'T'=>"5",
                    'P1'=>"libre",
                    'P2'=>"libre",
                    'P3'=>"libre",
                    'P4'=>"libre",
                    'P5'=>"libre"),
                );
 
 
/*Creacion de un foreach para recorrer el array y asignar a valor el 
       * contenido del array */
 
        foreach ($datosPersonas as $clave=> $valor):
 
        /* Creacion del for para imprimir el contenudo de valor con un ciclo*/
            for ($i=0;$i<count($clave);$i++):
 
                /*Imprimiendo en formato tabla no conosco muy bien html pero 
                hice lo que pude para organizarlo se que necesito mejorar */
                echo "<table border = 2 class = troll2>";
 
                echo  '<td>'.$valor['T'].
                      '<td>'.$valor['P1'].'</td>'.
                      '<td>'.$valor['P2'].'</td>'.
                      '<td>'.$valor['P3'].'</td>'.
                      '<td>'.$valor['P4'].'</td>'.
                      '<td>'.$valor['P5'].'</td>'.'<n>';
 
            endfor;
 
        endforeach;
 
        echo "</table>";
 
        ?>
        <n>
            <p><form action="seleccionarNumero.php" method="post"></p>
        <p>FILA: <input type="text" name="fila" value="" /></p>
        <p>PUESTO: <input type="text" name="puesto" value="" /></p>
        <label><input type="checkbox" name="check_list[]" value="Reservar">Reservar</label><br/>
        <label><input type="checkbox" name="check_list[]" value="Comprar">Comprar</label><br/>
        <label><input type="checkbox" name="check_list[]" value="Liberar">Liberar</label><br/>
        <input type="submit" name="submit" value="ENVIAR"/>
 
        <?php
 
        $_pFILA = $_POST['fila'];
        echo $_pFILA;
        if($_pFILA==1 and  $_pPUESTO==1){
 
            echo $datosPersonas[$_pFILA][$_pPUESTO];
        }
 
         $_pPUESTO = $_POST['puesto'];
           echo $_pPUESTO;
 
        if(isset($_POST['submit'])){//to run PHP script on submit
            if(!empty($_POST['check_list'])){
// Loop to store and display values of individual checked checkbox.
                foreach($_POST['check_list'] as $selected){
 
                    echo $selected."</br>";
 
                }
 
            }
        }
 
        ?>
        </form>
         </n>
    </body>
</html>
psto
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

AYUDA SOY NUEVO PROGRAMANDO ES PARA CURSO

Publicado por gonzalo (615 intervenciones) el 02/06/2017 02:59:58
todos los camios llevan a roma, todo esta en elegir cual camino te conviene mas.

posible solucion

cambia los checkbox por option box, no se puede liberar,comprar y reservar al mismo tiempo (o quien sabe, se puede?)

olvidate de los textbox para el row y para el column, usa un checkbox en cada celda, asi cuando mandes el submit solo recorres los objetos del $_post, encuentras los checkbox que estan activados y los guardas en un archivo.


procedimiento
0 inicialisas el array de 5x5 y dejas todo en "libre".
1 lees un archivo donde esten guardados los valores de cada celda en el formato row,col,value ("libre","comprar","reservar") la primera vez que lo lees no debe haber nada asi que todo queda como "libre", las siguientes veces si vas a encontrar valores (ojo).
2 si diste click en submit entonces
{
a tomas el valor del option (el que hayan elegido de los 3)
b recorres cada checkbox y actualizas el array
c guardas el array en un archivo
}
3 generas la tabla con los valores actualizados y actualizas la celda con uno de los 3 textos segun el valor del array
4 esperas por un submit y repites la operacion de nuevo.

no veo que uses funciones, eso dificulta un poco el codigo porque todo es secuencial, aunque para lo que te estan pidiendo asi como lo tienes estaria bien yo empezaria a ordenar mi codigo por funiones, pero eso lo dejo a tu criterio.

y la otra solucion es casi igual, solo debes leer el valor de cada textbox y actualizar el array, pero aqui vas a tener que validar que hayan capturado valores enteros menores a 6.

la logica seria mas o menos la misma pero seria de 1x1, en la solución que te doy puedes reservar, comprar o liberar 1 o todos en 1 solo submit.

hay que tener cuidado, si esta vendido no se puede reservar pero si se puede liberar.

yo usaria foreach solamente si no supiera las dimensiones de la tabla, en este caso es una tabla de 5x5, asi que usaria mejor un for anidado.

si te interesa la primer solución avisame.

suerte!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

AYUDA SOY NUEVO PROGRAMANDO ES PARA CURSO

Publicado por olbany (2 intervenciones) el 02/06/2017 03:43:42
si pues me gustari a ver como es la 1 solucion que me das nose un ejemplo de un 2x2 para entendero o un 1x1 te agradeceria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

AYUDA SOY NUEVO PROGRAMANDO ES PARA CURSO

Publicado por Gonzalo (615 intervenciones) el 02/06/2017 06:34:44
necesita mas trabajo, como detectar que Archivo.txt existe poner los encabezados arriba y a la izquierda, evitar reservar una compra,y otras cosas, eso te lo dejo a ti, por lo menos este ejemplo funciona como te lo prometi.

con un poco mas de codigo pones las celdas verdes como libre, amarillas como reservado y rojo como comprar, los checkbox centrados, ya depende de tu imaginacion.

salu2


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<form action="" method="post">
<?php
 
for($x=1;$x<=5;$x++)
{
	for($y=1;$y<=5;$y++)
	{
		$Puestos[$x][$y]="Libre";
	}
}
 
$Handle=fopen("Archivo.txt","r");
while(($Linea=fgets($Handle))!==false)
{
	list($x,$y,$Valor) = explode(",",str_replace(PHP_EOL,"",$Linea));
	$Puestos[$x][$y]=$Valor;
}
fclose($Handle);
 
if(isset($_POST["ButSubmit"]))
{
	foreach($_POST as $Obj=>$Val)
	{
		if(substr($Obj, 0,4)=="Item")
		{
			list($x,$y)=explode(",",$Val);
			$Puestos[intval($x)][intval($y)]=$_POST["Modo"];
		}
	}
}
 
$Handle=fopen("Archivo.txt","w");
for($x=1;$x<=5;$x++)
{
	for($y=1;$y<=5;$y++)
	{
		fwrite($Handle,"$x,$y,".$Puestos[$x][$y].PHP_EOL);
	}
}
fclose($Handle);
 
$i=0;
echo('<table border="1">');
for($x=1;$x<=5;$x++)
{
	echo('<tr>');
	for($y=1;$y<=5;$y++)
	{
		echo('<td>');
			echo($Puestos[$x][$y]."<br>");
			echo('<input type="checkbox" name="Item'.$i.'" value="'.$x.','.$y.'">');
		echo('</td>');
		$i++;
	}
	echo('</tr>');
}
echo('</table>');
 
echo('<input type="radio" name="Modo" value="Resevar"> Reservar<br>');
echo('<input type="radio" name="Modo" value="Comprar"> Comprar<br>');
echo('<input type="radio" name="Modo" value="Liberar"> Liberar<br>');
echo('<input type="submit" name="ButSubmit" value="Submit">');
 
?>
</form>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar