PHP - Cargar array por teclado en PHP

   
Vista:

Cargar array por teclado en PHP

Publicado por Susana (5 intervenciones) el 07/11/2012 19:04:38
Hola, querria hacer un bucle para llenar un array en php, html y php todo en el mismo documento, seria algo asi:

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
<body>
    <?php
        if(!$_POST)
        {
    ?>
        <h3>Peticion de numero x, por teclado para la ejecucion de un bucle x veces.</h3>
 
        <form method="post">
            <p>Introduccion de datos individuales en una sola variable, un array.</p>
            <p>
            <label>Numero total de datos a introducir</label>
                <input type="text" name="total" value="" title="Total de datos a introducir"/>
            <?php
                $i=0;
                $total=$_POST['total']; <-- aqui me da un error
 
                for ($i=0; $i<$total; $i++)
                {
            ?>
                    <label>Dato a introducir en la variable de tipo array: </label>
                        <input type="text" name="dato"/>
                        <br/>
                        <input type="submit" value="Envio a proceso"/><br/>
                        <input type="reset" value="Borrado de datos"/>
            <?php
                        $dato=$_POST('dato');
                        $miarray=array($dato);
                }
            ?>
            </p>
        </form>
    <?php
        }
        else
        {
            print_r($miarray);
        }
    ?>
    <br/>
    <a href="javascript:history.back(1)">Volver a la pagina anterior</a>
</body>



No se si el bucle para llenar el array es correcto y aun asi, al cargar esto en el navegador no me reconoce la variable $total [error: Notice: Undefined index: total in...]
Tengo instalado el xampp y uso firefox.

Muchas gracias
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
Imágen de perfil de xve

Cargar array por teclado en PHP

Publicado por xve (5522 intervenciones) el 07/11/2012 19:48:19
El Notice que te da, es que no existe el valor de $_POST['total']...
Como enviar ese valor?? desde que formulario?
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

Cargar array por teclado en PHP

Publicado por Susana (5 intervenciones) el 08/11/2012 01:53:34
Esta todo en el mismo documento (XXX.php) html y php entremezclados, se cargaria desde formulario:
<body>
<?php
if(!$_POST)
{
?>
<h3>Peticion de numero x, por teclado para la ejecucion de un bucle x veces.</h3>
<form method="post"> <---AQUI COMENZARIA EL FORMULARIO

Luego abro de nuevo con las etiquetas para php, para escribir la parte del for con el que llenaria el array y lo cierro justo antes de las preguntas que serian, de nuevo parte de html y no php...

Es un poco lio...no se si me expliqué, espero haber contestado a tus preguntas..
Muchas gracias
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
Imágen de perfil de xve

Cargar array por teclado en PHP

Publicado por xve (5522 intervenciones) el 08/11/2012 08:14:34
Hola Susana, la verdad es que no entiendo muy bien como lo tienes montado... me gustaria ver la linea del formulario donde pasas la variable total?
El problema que tienes, es que no pasas esa variable en el formulario.
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

Cargar array por teclado en PHP

Publicado por Susana (5 intervenciones) el 08/11/2012 09:00:48
Ok, te voy pongo uno que se que funciona y te comento sobre el.
El código sobre el que pregunto esta montado del mismo modo, código php mezclado con html y en un único archivo, de momento estoy aprendiendo y haciendo prácticas...por eso lo monto todo en un archivo, me es mas cómodo.
Yo no soy capaz de ver la diferencia con el código sobre el que pregunto...en cuanto a estructura...entiendo que estoy pasando la variable con la línea: $total=$_POST['total']; que es donde me da el error.

Código ejemplo (otro...;-P): arcivo unico "aaa.php"
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; chaset=utf-8"/>
		<title>Ejemplo 05: formulario de entrada de datos</title>
	</head>
 
	<body>
		<center><h3>Proceso de datos del formulario</h3></center></br>
		<?php
			if(!$_POST)
			{
		?>
				<h3>INICIO FORMULARIO</h3></br>
					<form method="POST">
						<label>Entra un numero:</label>
							<input type="text" name="nr1" size=3 maxlength=3 title="Introduce un numero"/></br>
						<p><input type="submit" value="Envio a proceso"/></p>
					</form>
				<h3>FIN FORMULARIO</h3></br>
		<?php
			}
			else
			{
				//Comprobacion del envio de los numeros 1 y 2 del formulario:
				if($_POST['nr1']>=0)
				{
					$nr1=$_POST['nr1']; <-AQUI SE RECIBE LA VARIABLE NR1 DEL FORMULARIO Y SE ALMACENA EN $NR1, NO?
					echo "Primer numero: ".$nr1."</br>";
				}
			}
		?>
	</body>
</html>
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
Imágen de perfil de xve

Cargar array por teclado en PHP

Publicado por xve (5522 intervenciones) el 08/11/2012 09:32:48
Si, porque se envía desde la línea:
1
<input type="text" name="nr1" size=3 maxlength=3 title="Introduce un numero"/>

Pero en tu código desde donde se envía total???

Nos puedes mostrar todo el código entero de tu página?
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

Cargar array por teclado en PHP

Publicado por Susana (5 intervenciones) el 11/11/2012 11:54:19
Ya estan puestos los botones de enviar y este es el codigo completo:

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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
		<title>Ejemplo</title>
	</head>
 
	<body>
 
		<?php
			if(!$_POST)
			{
		?>
			<h3>Peticion de numero x, por teclado para la ejecucion de un bucle x veces.</h3>
 
			<form method="post">
				<p>Introduccion de datos individuales en una sola variable, un array.</p>
				<p>
				<label>Numero total de datos a introducir</label>
					<input type="text" id="total" name="total" value="" title="Total de datos a introducir"/>
						<br/>
						<br/>
						<input type="submit" value="Envio a proceso"/><br/>
						<input type="reset" value="Borrado de datos"/>
				<?php
					$i=0;
					$total=$_POST['total'];
 
					for ($i=0; $i<$total; $i++)
					{
				?>
						<label>Dato a introducir en la variable de tipo array: </label>
							<input type="text" id="no es necesario no identifica al dato, el atributo name si" name="dato"/>
							<br/>
							<br/>
							<input type="submit" value="Envio a proceso"/><br/>
							<input type="reset" value="Borrado de datos"/>
				<?php
							$dato=$_POST('dato');
							$miarray=array($dato);
					}
				?>
				</p>
			</form>
		<?php
			}
			else
			{
				print_r($miarray);
			}
		?>
		<br/>
		<a href="javascript:history.back(1)">Volver a la pagina anterior</a>
	</body>
</html>



Gracias
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
Imágen de perfil de xve

Cargar array por teclado en PHP

Publicado por xve (5522 intervenciones) el 11/11/2012 20:13:40
Hola Susana, gracias por enviarnos el codigo entero... ahora se ve muy claro porque no te funciona!!!

Cuando envías los valores del formulario, ya no llega a la linea:
1
$total=$_POST['total'];

porque en algunas lineas anteriores tienes puesto:
1
if(!$_POST)

Y esto quiere decir, que ejecute el contenido dentro del if si no hay ningún valor por $_POST, por lo que si $_POST['total'] tiene valor, nunca ejecutar la instrucción mostrara con anterioridad.

Lo ves? coméntanos, ok?
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

Cargar array por teclado en PHP

Publicado por Susana (5 intervenciones) el 11/11/2012 21:31:31
Pillado y, al menos esa parte, creo que arreglada...el for lo pasé para dentro del else, corregí la declaracion del array, antes tenía:
1
$miarray=array($dato);


y he puesto:
1
$miarray[]=array($dato);


porque no me reconocia miarray como variable de tipo array.
He dejado el codigo tal que:
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
		<title>Ejemplo</title>
	</head>
 
	<body>
 
		<?php
			if(!$_POST)
			{
		?>
			<h3>Peticion de numero x, por teclado para la ejecucion de un bucle x veces.</h3>
 
			<form method="post">
				<p>Introduccion de datos individuales en una sola variable, un array.</p>
				<p>
				<label>Numero total de datos a introducir</label>
					<input type="text" id="total" name="total" value="" title="Total de datos a introducir"/>
						<br/>
						<br/>
						<input type="submit" value="Envio a proceso"/><br/>
						<input type="reset" value="Borrado de datos"/>
				</p>
			</form>
		<?php
			}
			else
			{
				$i=0;
				$total=$_POST['total'];
 
				for ($i=0; $i<$total; $i++)
				{
		?>
					<label>Dato a introducir en la variable de tipo array: </label>
						<input type="text" id="no es necesario no identifica al dato, el atributo name si" name="dato"/>
						<br/>
						<br/>
						<input type="submit" value="Envio a proceso"/><br/>
						<input type="reset" value="Borrado de datos"/>
		<?php
							$dato=$_POST('dato');
							$miarray[]=array($i => $dato);
				}
			}
			$numelementos=count($miarray());
			for ($i=0; $i<$numelementos; $i++)
			{
				echo $miarray($i);
			}
		?>
		<br/>
		<a href="javascript:history.back(1)">Volver a la pagina anterior</a>
	</body>
</html>


He reescrito la parte de imprimir el array, pero desde que cargo la pagina antes de introducir datos ya me da errores...y que no creo que se este ejecutando el bucle para rellenar el array, porque entiendo que al darle al boton de enviar dato deberia borrarse lo que tenia anteriormente...y no es asi.
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