Foros del Web » Programando para Internet » PHP »

enviar varios registros en formulario

Estas en el tema de enviar varios registros en formulario en el foro de PHP en Foros del Web. Hola amigos. Necesito lo siguiente. En un formulario, cargo una consulta que devuelve tres registros, porque lo que me queda un formulario con tres etiquetas ...
  #1 (permalink)  
Antiguo 27/10/2010, 05:55
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
enviar varios registros en formulario

Hola amigos. Necesito lo siguiente. En un formulario, cargo una consulta que devuelve tres registros, porque lo que me queda un formulario con tres etiquetas y tres cuadros de texto, tantos como registros tiene la consulta.

Ahora, si quiero modificar algunos de estos tres registros, solamente puedo con uno, ya que al enviar el cuadro de texto del formulario con los cambios, solamente envia el valor de un cuadro de texto, no de los tres.

Y no se me ocurre nada para solucionarlo para enviar el valor de los tres registros, y al recibirlos modificarlos como quiera.

El codigo es este

Código PHP:
Ver original
  1. <form action="../../paginas/proveedores/index.php" method="post" name="del_telefonos">
  2. <label id="tipo_telefono">Tipo Telefono </label>
  3. <label id="numero">Numero </label>
  4. <?php
  5. $rs2 = mysql_query(c_delegaciones_telefonos($delegacion));
  6.  
  7. while ($rs3 = mysql_fetch_assoc($rs2))
  8. {
  9. ?>
  10. <select name="tipo_telefono" class="formulario2" id="tipo_telefono">
  11. <option value="<?php echo $rs3['tipo_telefono'];?>"><?php echo $rs3['tipo_telefono'];?></option>
  12. <option>Telefono</option>
  13. <option>Fax</option>
  14. <option>Movil</option>
  15. </select>  
  16.  
  17. <input name="numero" type="text" class="formulario2" id="numero" value="<?php echo telefonos($rs3['numero']);?>" maxlength="9"/>
  18. <?php
  19. }
  20.  
  21. ?>
  22. <input name="anadir_empresa" type="submit" value="Anadir registro" />
  23. </form>

Gracias por la ayuda. Un saludo.
  #2 (permalink)  
Antiguo 27/10/2010, 06:27
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: enviar varios registros en formulario

Hola Aitor, tu formulario envia correctamente:

Código PHP:
Array ( [tipo_telefono] => Telefono [numero] => 999555888 [anadir_empresa] => Anadir registro 
pero sólo hay dos campos y un botón.
  #3 (permalink)  
Antiguo 27/10/2010, 07:04
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: enviar varios registros en formulario

Hola. Gracias por tu respuesta, pero es que no entiendo lo que quieres decir.
  #4 (permalink)  
Antiguo 27/10/2010, 07:30
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: enviar varios registros en formulario

Tu formulario sólo tiene 2 campos que se envían por $_POST:
1. <select name="tipo_telefono" class="formulario2" id="tipo_telefono">
2. <input name="numero" type="text" class="formulario2" id="numero"
y un botón <input name="anadir_empresa" type="submit" value="Anadir registro" />
El formulario funciona correctamente, si lo que quieres es enviar más de un registro de la consulta, entonces tienes que modificar tu código así:


Código PHP:
<?php

$rs2 
mysql_query(c_delegaciones_telefonos($delegacion));

 
$x 0;
while (
$rs3 mysql_fetch_assoc($rs2))

{

?>

<select name="tipo_telefono_<?=$x?>" class="formulario2" id="tipo_telefono">

<option value="<?php echo $rs3['tipo_telefono'];?>"><?php echo $rs3['tipo_telefono'];?></option>

<option>Telefono</option>

<option>Fax</option>

<option>Movil</option>

</select>  

 

<input name="numero_<?=$x?>" type="text" class="formulario2" id="numero" value="<?php echo telefonos($rs3['numero']);?>" maxlength="9"/>

<?php $x++;

***** 
lo que sigue
saludos
  #5 (permalink)  
Antiguo 27/10/2010, 07:45
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: enviar varios registros en formulario

Hola. Gracias otra vez. Ahora si le tengo mas claro, pero a la hora de recibirlo, logicamente, con esto

echo $_REQUEST['tipo_telefono'];
echo '<br/>';
echo $_REQUEST['numero'];
echo '<br/>';

recibe solo uno. ¿Como puedo recibir todos?
  #6 (permalink)  
Antiguo 27/10/2010, 07:48
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: enviar varios registros en formulario

No, con el código que te envié recibes esto:

echo $_REQUEST['tipo_telefono_0'];
echo '<br/>';
echo $_REQUEST['numero_0'];
echo '<br/>';

echo $_REQUEST['tipo_telefono_1'];
echo '<br/>';
echo $_REQUEST['numero_1'];
echo '<br/>';

echo $_REQUEST['tipo_telefono_2'];
echo '<br/>';
echo $_REQUEST['numero_2'];
echo '<br/>';
  #7 (permalink)  
Antiguo 27/10/2010, 07:52
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: enviar varios registros en formulario

Hola. Si, efectivamente, pero ahora sabemos que son tres, pero suponte que no sabemos los que son, o que sean muchos. Como lo podemos recibir?
  #8 (permalink)  
Antiguo 28/10/2010, 01:11
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: enviar varios registros en formulario

Código PHP:
<?php
/**
 * Siempre sabes cuantos elementos tienes, la funcion count($_REQUEST) te devuelve el total de elementos del array.
 * Otra opción es la siguiente:
 * Foreach recorre todos los elementos del array. El var x tiene la función de guardar valores numéricos
 */
$x 0;
foreach (
$_REQUEST as $key => $value){
    if(
strstr($_REQUEST"tipo_telefono_".$x)) echo $_REQUEST['tipo_telefono_'.$x];
    
$x++;
}
?>
  #9 (permalink)  
Antiguo 28/10/2010, 07:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: enviar varios registros en formulario

Hola.

Yo lo he conseguido hacer de esta otra forma

Código PHP:
Ver original
  1. if (isset($_REQUEST['w']))
  2. {
  3. for ($i=0;$i<$_REQUEST['w'];$i++)
  4. {
  5. $v = $_REQUEST['v'."$i".''];
  6. mysql_query(c_correos_actualizacion($_REQUEST['id_correo'."$v".''], $_REQUEST['e_mail'."$v".''])) or die ('Error al modificar el registro: '.mysql_error());
  7. $_REQUEST['nombre_pagina'] = 'Los correos se han modificado correctamente';
  8. }
  9. }

Etiquetas: enviar, registros, 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 18:32.