Foros del Web » Programando para Internet » PHP »

Formulario no envia datos por POST

Estas en el tema de Formulario no envia datos por POST en el foro de PHP en Foros del Web. Buenas a todos y gracias por su atención: Lo que voy a explicar lo he realizado muchas veces, pero no se por que esta vez ...
  #1 (permalink)  
Antiguo 10/12/2010, 11:40
 
Fecha de Ingreso: abril-2009
Ubicación: Vitoria
Mensajes: 160
Antigüedad: 15 años
Puntos: 1
Pregunta Formulario no envia datos por POST

Buenas a todos y gracias por su atención:

Lo que voy a explicar lo he realizado muchas veces, pero no se por que esta vez no funciona.

Tengo un formulario que recoge los datos que introduce el usuario y los envia a otra página PHP para recogerlos y si todo está correcto añadir un registro a una tabla.

Bien pues no se envian todos los datos, solo me recoge el primero y el último...
No paro de dar vueltas y no consigo que se envíen esos datos, y si se envian no se están recogiendo...

Posteo el código.

Formulario para recoger los datos contenidos en una tabla:

Código PHP:
<table>
            <form name="adding" action="asistente_adding.php" method="post" onsubmit="return validar()">
            <tr>
                <td rowspan="3" width="200px" align="center"><img src="images/asistentes/foto_vacia.jpg" /> </td>
                
                <td><strong>Nombre:*</strong></td>
                <td><input type="text" name="nombre" id="nombre" size="24"/></td>
                
                <td><strong>Apellidos:*</strong></td>
                <td><input type="text" name"apellido" id="apellido" size="24"/></td>
            </tr>
            <tr>
                <td><strong>Direcci&oacute;n:</strong></td>
                <td><input type="text" name"direccion" id="direccion" size="24"/></td>
                
                <td><strong>Pais:*</strong></td>
                <td>
                <select name="pais" id="pais">
                    <option>Selecione un pa&iacute;s...</option>
                    <?php
                    $query_pa 
"SELECT cod_pais, pa_nombre FROM pais";
                    
$result_pa mysql_query($query_pa) or die(mysql_error());
                    while (
$row_pa mysql_fetch_array($result_pa)){?>
                    <option value="<?php echo $row_pa['pa_nombre'];?>"><?php echo $row_pa['pa_nombre'];?></option>
                    <?php ?>
                </select>
                </td>
            </tr>
            <tr>
                <td><strong>Tfl.:</strong></td>
                <td><input type="text" name"telefono" id="telefono" size="24"/></td>
                
                <td><strong>E-mail:</strong></td>
                <td><input type="text" name"email" id="email" size="24"/></td>
                
            </tr>
            <tr>
                <td></td>
                <td colspan="4" style=" width: 600px; padding-bottom: 20px;">
                    <strong>Notas Personales:</strong><br/><br/>
                    <textarea name="anotaciones" />
                    </textarea>
                </td>
            </tr>
            <tr>
                <td colspan="5" style="border-bottom: 1px solid #193968; text-align:right; padding: 5px 5px 5px 0px;">
                    
                    <!-- Botones de edición para guardar o cancelar los datos añadidos. -->
                    <input type="image" src="images/save.png" alt="Guardar" title="Guardar" class="addas" value="Guardar"/>
                    <a href="javascript:volver()">
                        <img src="images/cancel.png" class="edicion" alt="Cancelar" title="Cancelar" /></a>
                        
                </td>
            </tr>
            </form>
</table>

Página que recoge los datos para guardarlos:
insisto en que solo recoge el primero y el último. (name="nombre" y name="anotaciones" )
asistente_adding.php
Código PHP:
<?php
$n_nom 
$_POST['nombre'];
$n_ape $_POST['apellido'];
$n_dir $_POST['direccion'];
$n_tel $_POST['telefono'];
$n_eml $_POST['email'];
$n_ant $_POST['anotaciones'];

echo 
"$n_nom $n_ape $n_dir $n_tel $n_eml $n_ant";
?>
No posteo todo el código de la página por que son comprobaciones de esos datos que no consigo recoger.

Espero que puedan ayudarme y muchisimas gracias por su colaboración!
  #2 (permalink)  
Antiguo 10/12/2010, 11:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Formulario no envia datos por POST

pues veo que tienes name"direccion" y no se que otras igual, ¿no te has dado cuenta?

bueno, pues te falta el = de varios name



--
jajaja lo que mas me da risa -y llanto- de estos temas es como si le echan la culpa a php...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/12/2010, 11:47
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia
Mensajes: 229
Antigüedad: 14 años
Puntos: 2
Respuesta: Formulario no envia datos por POST

Que a cada variable no deberiasn concatenarla con un punto

echo $n_nom." ".$n_ape." ".$n_dir." ".$n_tel." ".$n_eml." ".$n_ant;

o usa
$_REQUEST['nombre']
  #4 (permalink)  
Antiguo 10/12/2010, 11:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Formulario no envia datos por POST

Cita:
Iniciado por pepeluis1 Ver Mensaje
Que a cada variable no deberiasn concatenarla con un punto

echo $n_nom." ".$n_ape." ".$n_dir." ".$n_tel." ".$n_eml." ".$n_ant;

o usa
$_REQUEST['nombre']
no pepeluis1, su código está bien implementado... lo único que esta mal es su formulario...

además, de paso te invito a leer lo siguiente:
http://www.forosdelweb.com/f18/como-...1/#post2414268
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 10/12/2010, 11:57
 
Fecha de Ingreso: abril-2009
Ubicación: Vitoria
Mensajes: 160
Antigüedad: 15 años
Puntos: 1
Respuesta: Formulario no envia datos por POST

Dios miooooo!!

Que patan estoy hecho...

Perdonadme, pero llevo todo el día programando y esto es lo que puede llegar a ocurrir cuando te saturas!

Muchas gracias a todos!
Postearé el código correcto mas adelante...
  #6 (permalink)  
Antiguo 13/12/2010, 05:09
 
Fecha de Ingreso: abril-2009
Ubicación: Vitoria
Mensajes: 160
Antigüedad: 15 años
Puntos: 1
Información Respuesta: Formulario no envia datos por POST

Posteo el código completo:

Fomulario donde se recoge los datos...
Código PHP:
<form name="adding" action="asistente_adding.php" method="post" onsubmit="return validar()">
            <table>
            <tr>
                <td rowspan="3" width="200px" align="center"><img src="images/asistentes/foto_vacia.jpg" /> </td>
                
                <td><strong>Nombre:*</strong></td>
                <td><input type="text" name="nombre" size="24"/></td>
                
                <td><strong>Apellidos:*</strong></td>
                <td><input type="text" name="apellido" size="24"/></td>
            </tr>
            <tr>
                <td><strong>Direcci&oacute;n:</strong></td>
                <td><input type="text" name="direccion" size="24"/></td>
                
                <td><strong>Pais:*</strong></td>
                <td>
                <select name="pais">
                    <option>Selecione un pa&iacute;s...</option>
                    <?php
                    $query_pa 
"SELECT cod_pais, pa_nombre FROM pais";
                    
$result_pa mysql_query($query_pa) or die(mysql_error());
                    while (
$row_pa mysql_fetch_array($result_pa)){?>
                    <option><?php echo $row_pa['pa_nombre'];?></option>
                    <?php ?>
                </select>
                </td>
            </tr>
            <tr>
                <td><strong>Tfl.:</strong></td>
                <td><input type="text" name="telefono" size="24"/></td>
                
                <td><strong>E-mail:</strong></td>
                <td><input type="text" name="email" size="24"/></td>
                
            </tr>
            <tr>
                <td></td>
                <td colspan="4" style=" width: 600px; padding-bottom: 20px;">
                    <strong>Notas Personales:</strong><br/><br/>
                    <textarea name="anotaciones" id="anotaciones" class="mceSimple"/></textarea>
                </td>
            </tr>
            <tr>
                <td colspan="5" style="border-bottom: 1px solid #193968; text-align:right; padding: 5px 5px 5px 0px;">
                    
                    <!-- Botones de edición para guardar o cancelar los datos añadidos. -->
                    <input type="image" src="images/save.png" alt="Guardar" title="Guardar" class="addas" value="Guardar"/>
                    <a href="javascript:volver()">
                        <img src="images/cancel.png" class="edicion" alt="Cancelar" title="Cancelar" /></a>
                        
                </td>
            </tr>
            </table>
            </form>

Y el archivo "asistente_adding.php":

Código PHP:
<?php
            
// Recibimos los datos que es necesario comprobar del formulario.
            
$n_nom $_POST['nombre'];
            
$n_ape $_POST['apellido'];
            
$n_pas $_POST['pais'];
            
$n_dir $_POST['direccion'];
            
$n_tel $_POST['telefono'];
            
$n_eml $_POST['email'];
            
$n_ant $_POST['anotaciones'];
            
            
// Comprobando la existencia de un usuario con el mismo nombre y apellido.
            
$query_ck "SELECT as_nombre, as_apellidos FROM asistente WHERE as_nombre = '$n_nom' AND as_apellidos = '$n_ape'";
            
$result_ck mysql_query($query_ck) or die (mysql_error());
            if((
mysql_num_rows($result_ck)) != 0)
            {
                
// Si tal usuario existe, se mostrará un mensaje para aceptar o no la introducción.
                
?>
                <script language="javascript" type="text/javascript">
                    if (confirm("Existe un asistente con el mismo nombre y apellido.<br/>¿Desea continuar?."))
                    {history.go(-1);}
                    }
                </script>
                <?php
            
}
            
            
// Obtenemos el código del país para guardarlo en el registro de asistente.
            
$query_pa "SELECT cod_pais, pa_nombre FROM pais WHERE pa_nombre = '$n_pas'";
            
$result_pa mysql_query($query_pa) or die(mysql_error());
            
$data_pa mysql_fetch_array($result_pa);
            
$n_pais $data_pa['cod_pais'];
            
            
//echo "$n_nom / $n_ape / $n_dir / $n_pas / $n_tel / $n_eml / $n_ant / $n_pais";
            
            //Creación de la sentencia SQL para introducir los datos del asistente.
            
$sql_insert "INSERT INTO asistente VALUES ('','$n_nom','$n_ape','$n_dir','$n_pais','$n_tel','$n_eml','$ruta_imagen','$n_ant')";
            
            
$result_insert mysql_query($sql_insert) or die(mysql_error());
            if(!(
$result_insert)){
                echo 
"<br/>Se ha producido un error durante el registro.";
                echo 
"<br/>Vuelva a intentarlo o pongase en contacto con el administrador.";
                
?>
                    <script type="text/javascript"> setTimeout("redireccionarAdd()", 5000);</script>
                <?php
            
}else{ 
                echo 
"<br/><br/>El nuevo asistente ha sido añadido correctamente.<br/>Guardando datos, espere unos segundos.";
                
?>
                    <script type="text/javascript"> setTimeout("redireccionarListado()", 8000);</script>
                <?php                    
            
}
            
?>

Etiquetas: post, formulario
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 07:21.