Foros del Web » Programando para Internet » PHP »

necesito ayuda con arreglos y formulario

Estas en el tema de necesito ayuda con arreglos y formulario en el foro de PHP en Foros del Web. Hola, necesito ayuda con un formulario y arreglos, les explico: Necesito hacer 3 campos de texto con nombre, apellido y telefono, pero a la vez ...
  #1 (permalink)  
Antiguo 26/04/2007, 14:27
 
Fecha de Ingreso: abril-2007
Ubicación: Concon, Viña del mar
Mensajes: 34
Antigüedad: 17 años
Puntos: 0
necesito ayuda con arreglos y formulario

Hola, necesito ayuda con un formulario y arreglos, les explico:
Necesito hacer 3 campos de texto con nombre, apellido y telefono, pero a la vez necesito guardarlos en un arreglo o algo asi para que al enviar un formulario que llame a la misma pagina php pueda leer los datos y mostrarlos en pantalla a la vez que permite ingresar nuevamente mas datos. Espero que me aya explicado bien, aun asi dejo un ejemplo.

Codigo (datos.php)
<html>
<head><title>
</title></head>
<body>
<form action="datos.php" method="post" name='form'>
<table border='1'>
<tr>
<td>nombre</td>
<td>apellido</td>
<td>fono</td>
</tr>
<?php
if($nombre!="")
{
echo "
<tr><td>";
//Aqui debiera de ir el codigo que necesito para mostrar los datos ya ingresados.
echo "</td></tr>";
}
}
else
echo "
<tr>
<td></td></tr>";
?>
<tr>
<td><input type='text' name='nombre[]'></td>
<td><input type='text' name='apell[]'></td>
<td><input type='text' name='fono[]'></td>
</tr>

</table>
<input type='submit' name='insertar' value='insertar'>
</form>
</body>
</html>

Espero me puedan ayudar, gracias.
  #2 (permalink)  
Antiguo 26/04/2007, 14:51
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Re: necesito ayuda con arreglos y formulario

Nose si lo que quieres es algo así:

Código PHP:
<?
    
for($i=0;$i<count($_POST['nombre']);$i++){
        echo 
$_POST['nombre'][$i].'<br />';
        echo 
$_POST['apell'][$i].'<br />';
        echo 
$_POST['fono'][$i].'<br />';
    }
?>
Espero te sirva.
Saludos.
  #3 (permalink)  
Antiguo 26/04/2007, 14:56
 
Fecha de Ingreso: abril-2007
Ubicación: Concon, Viña del mar
Mensajes: 34
Antigüedad: 17 años
Puntos: 0
Re: necesito ayuda con arreglos y formulario

Bueno es algo asi pero no c si el codigo que tengo esta bien realizado. Pero gracias por tu ayuda ahora mismo voy a revisarlo
  #4 (permalink)  
Antiguo 26/04/2007, 15:04
 
Fecha de Ingreso: abril-2007
Ubicación: Concon, Viña del mar
Mensajes: 34
Antigüedad: 17 años
Puntos: 0
Re: necesito ayuda con arreglos y formulario

miren revise el codigo pero aun asi me ha quedado de la siguiente forma:

<html>
<head><title>
</title></head>
<body>
<form action="b2.php" method="post" name='form'>
<table border='1'>
<tr>
<td>nombre</td>
<td>apellido</td>
<td>fono</td>
</tr>
<?php
if (count($_POST['nombre'])>0)
{
$largo=count($_POST['nombre']);
echo "$largo";
for($i=0;$i<count($_POST['nombre']);$i++){
echo "<td>".$_POST['nombre'][$i].'<br /></td>';
echo "<td>".$_POST['apell'][$i].'<br /></td>';
echo "<td>".$_POST['fono'][$i].'<br /></td>';
}
}
else
echo "
<tr>
<td></td>
<td></td>
<td></td>
</tr>";
?>
<tr>
<td><input type='text' name='nombre[]'></td>
<td><input type='text' name='apell[]'></td>
<td><input type='text' name='fono[]'></td>
</tr>

</table>
<input type='submit' name='insertar' value='insertar'>
</form>
</body>
</html>



pero al parecer solamente me toma los ultimos valores del arreglo que puedo hacer ?
  #5 (permalink)  
Antiguo 26/04/2007, 15:32
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Re: necesito ayuda con arreglos y formulario

Haz un print_r de todos los POST, para ver que valores tiene, y lo comparas con lo que te devuelve el for:
Código PHP:
<?
     print_r
($_POST['nombre']);
?>
Saludos
  #6 (permalink)  
Antiguo 26/04/2007, 15:54
 
Fecha de Ingreso: abril-2007
Ubicación: Concon, Viña del mar
Mensajes: 34
Antigüedad: 17 años
Puntos: 0
Re: necesito ayuda con arreglos y formulario

al hacer eso me devuelve lo siguiente:
Array ( [0] => andres )
donde andres es el valor que ingrese al ultimo para el campo nombre
y si luego ingreso otro valor lo reemplaza por ejemplo despues de ingresar andres ingreso antonio queda de esta forma:
Array ( [0] => antonio ) y el indice se mantiene igual.

No se que puede ser lo que sucede.
  #7 (permalink)  
Antiguo 26/04/2007, 16:01
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Re: necesito ayuda con arreglos y formulario

Es logico...

No vuelves a ocupar nombre[] otra vez....

Nose si te sirva así, pero la idea del arreglo de campos es esta:

Código PHP:
    <html>
    <head>
        <title>    </title>
    </head>
    <body>
        <form action="b2.php" method="post" name='form'>
            <table border='1'>
                <tr>
                    <td>nombre</td>
                    <td>apellido</td>
                    <td>fono</td>
                </tr>
                    <?php
                        
if (count($_POST['nombre'])>0){
                            
$largo=count($_POST['nombre']);
                            echo 
"$largo";
                            for(
$i=0;$i<count($_POST['nombre']);$i++){
                                echo 
"<td>".$_POST['nombre'][$i].'<br /></td>';
                            }
                        }
                        else
                            echo 
"
                            <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            </tr>"
;
                
?>
            <tr>
                <td><input type='text' name='nombre[]'></td>
                <td><input type='text' name='nombre[]'></td>
                <td><input type='text' name='nombre[]'></td>
            </tr>
        </table>
        <input type='submit' name='insertar' value='insertar'>
        </form>
    </body>
    </html>
¿Qué esperas que devuelva?
  #8 (permalink)  
Antiguo 26/04/2007, 16:07
 
Fecha de Ingreso: abril-2007
Ubicación: Concon, Viña del mar
Mensajes: 34
Antigüedad: 17 años
Puntos: 0
Re: necesito ayuda con arreglos y formulario

Bueno tampoco me funciona asi, mira aqui coloco el codigo de nuevo haber si alguien lo puede copiar y correr. Para que asi vean lo que deseo hace.
Y gracias @ndreX!.

Y lo que quiero que haga es que cada vez que se ingresan los valores a los campo al hacer el submit del boton carge todos los valores que se han agregado al arreglo, pero al parecer no los guarda, por ejemplo si ingrese 4 nombres deberian salir 4 nombres mas la casilla para agregar un nombre nuevo eso es lo que quiero que haga.

Código PHP:
<html>
<head><title>
</title></head>
<body>
<form action="b2.php" method="post" name='form'>
<table border='1'>
<tr>
<td>nombre</td>
<td>apellido</td>
<td>fono</td>
</tr>

<?php
 
if  (count($_POST['nombre'])>0)
 {
    for(
$i=0;$i<count($_POST['nombre']);$i++){
        echo 
"<td>".$_POST['nombre'][$i].'<br /></td>';
        echo 
"<td>".$_POST['apell'][$i].'<br /></td>';
        echo 
"<td>".$_POST['fono'][$i].'<br /></td>';
    } 
 }
else
echo 
"
<tr>
<td></td>
<td></td>
<td></td>
</tr>"
;                      
?>
<tr>
<td><input type='text' name='nombre[]'></td>
<td><input type='text' name='apell[]'></td>
<td><input type='text' name='fono[]'></td>
</tr>

</table>
<input type='submit' name='insertar' value='insertar'>
</form>
</body>
</html>

Última edición por kensou_udlax; 26/04/2007 a las 16:19
  #9 (permalink)  
Antiguo 26/04/2007, 16:32
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Re: necesito ayuda con arreglos y formulario

Creo que lo que necesitas es algo asi:

Código PHP:
<?
    session_start
();
    if(!isset(
$_SESSION['name']) || !isset($_SESSION['last']) || !isset($_SESSION['phone'])){
        
$_SESSION['name'] = array();
        
$_SESSION['last'] = array();
        
$_SESSION['phone'] = array();
    }
    else{
        if(isset(
$_POST['nombre']) || isset($_POST['apell']) || isset($_POST['fono'])){
            
$_SESSION['name'][] = $_POST['nombre'];
            
$_SESSION['last'][] = $_POST['apell'];
            
$_SESSION['phone'][] = $_POST['fono'];
        }
    }
?>
<html>
<head>
    <title>    </title>
</head>
<body>
    <form action="" method="post" name='form'>
        <table border='1'>
            <tr>
                <td>nombre</td>
                <td>apellido</td>
                <td>fono</td>
            </tr>
                    <?php
                         
if (count($_SESSION['name'])>0){
                            for(
$i=0;$i<count($_SESSION['name']);$i++){
                                    echo 
'<tr>';
                                echo 
"<td>".$_SESSION['name'][$i].'<br /></td>';
                                echo 
"<td>".$_SESSION['last'][$i].'<br /></td>';
                                echo 
"<td>".$_SESSION['phone'][$i].'<br /></td>';
                                echo 
'</tr>';
                            }
                         }
                        else{
                                echo 
"
                                <tr>
                                    <td></td>
                                    <td></td>
                                    <td></td>
                                </tr>"
;  
                        }                    
                    
?>
            </tr>
            <tr>
                <td><input type='text' name='nombre'></td>
                <td><input type='text' name='apell'></td>
                <td><input type='text' name='fono'></td>
            </tr>
        </table>
        <input type='submit' name='insertar' value='insertar'>
    </form>
</body>
</html>
Si es así, no nesecitabas crear un arreglo de campos, sino un arreglo de variables y sesiones... :)

Saludos
  #10 (permalink)  
Antiguo 26/04/2007, 16:42
 
Fecha de Ingreso: abril-2007
Ubicación: Concon, Viña del mar
Mensajes: 34
Antigüedad: 17 años
Puntos: 0
Re: necesito ayuda con arreglos y formulario

Bueno muchas gracias ese era el resultado que deseaba, pence que con un arreglo se podria hacer pero veo que no, y creo que de esta forma es aun mucho mejor de como pensaba hacerlo. Vuelvo a darte las gracias me has ayudado mucho.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:36.