Foros del Web » Programando para Internet » PHP »

Problema al recibir datos de input dinámicos

Estas en el tema de Problema al recibir datos de input dinámicos en el foro de PHP en Foros del Web. Que tal? soy nueva en el foro, tengo problemillas con un formulario, a ver si alguien me puede ayudar, el problema es el siguiente.... Tengo ...
  #1 (permalink)  
Antiguo 27/04/2011, 04:45
 
Fecha de Ingreso: abril-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Pregunta Problema al recibir datos de input dinámicos


Que tal? soy nueva en el foro, tengo problemillas con un formulario, a ver si alguien me puede ayudar, el problema es el siguiente....

Tengo este formulario, en el cual estoy generando input dinámicos...
Código PHP:
<?php
include ("conexion.php");
echo
"
<form action=\"fotos_editar2.php\" method=\"POST\" ENCtype=\"multipart/form-data\">
"
;
$sql_albums mysql_query "select * from albums order by album_id DESC"$link );
$alb mysql_fetch_array $sql_albums );
$sql_fotos mysql_query "select * from fotos where album_id='$alb[album_id]' order by foto_id DESC"$link );
while ( 
$fot mysql_fetch_array $sql_fotos ) ) {
        echo 
"
<input type=\"hidden\" name=\"foto_id\" value=\"$fot[foto_id]\">
<ul>
<li>T&iacute;tulo</li>
<li><input type=\"text\" name=\"foto_name[]\" value=\"$fot[foto_name]\" size=20></li>
 <li>Descripci&oacute;n:</li>
<li><textarea name=\"foto_descripcion\" cols=\"15\" rows=\"5\">$fot[foto_descripcion]</textarea></li>
</ul>
"
;
}
echo 
"
<div id=\"btn_submit\">
<li><input type=\"submit\" value=\"Guardar cambios\"></li>
</div>
</form>
"
;
?>
pero después no se como recibir los datos para pasarlos a la base de datos debido a que los input generan varios valores distintos que se pasan por la misma variable, hasta este pedacito de código llegue

Código PHP:
<?php
include ("conexion.php");
$foto_id $_POST ['foto_id'];
$foto_name $_POST ['foto_name'];
$foto_descripcion $_POST ['foto_descripcion'];

mysql_query "UPDATE fotos SET foto_name='$foto_name' WHERE foto_id='$foto_id'"$link );

?>
e intente con un foreach

Código PHP:
<?php
foreach($foto_name as $value){
    
mysql_query "UPDATE fotos SET foto_name='$value' WHERE foto_id='$foto_id'"$link );
}
?>
pero creo que ahi el problema es el $foto_id

Espero haberme explicado bien y que alguien pueda ayudarme. De antemano, Gracias.
  #2 (permalink)  
Antiguo 27/04/2011, 05:02
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: Problema al recibir datos de input dinámicos

Estas creando variables con forma de array, para acceder a ellos solo tienes que hacer lo tipico de un array en PHP.
Código PHP:
Ver original
  1. $_POST['foto_name'][0]; // Con esto accederias al valor del primer campo de texto de nombre foto_name

Nose si es esto a lo que querias llegar.
  #3 (permalink)  
Antiguo 28/04/2011, 01:16
 
Fecha de Ingreso: abril-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Pregunta Respuesta: Problema al recibir datos de input dinámicos

Hola bNd170, si, en parte eso buscaba, gracias, pero aún no se como modificarlos en mi base de datos, necesito que introdusca foto_name y foto_descripcion en donde foto_id coincida con el foto_id que esta mandando mi formilario y q también es dinámico , sino me explique bien puedo intentarlo de nuevo..., ojala puedan echarme la mano, gracias.
  #4 (permalink)  
Antiguo 28/04/2011, 02:15
 
Fecha de Ingreso: abril-2011
Mensajes: 20
Antigüedad: 13 años
Puntos: 2
Respuesta: Problema al recibir datos de input dinámicos

Puedes intentarlo creando un array de inputs con ambos valores, no lo he podido probar (estoy con un movil) pero creo que funcionará.

Código PHP:
Ver original
  1. <?php
  2.  
  3. while ( $fot = mysql_fetch_array ( $sql_fotos ) ) {
  4.   echo "
  5.    <input type=\"hidden\" name=\"foto[][id]\" value=\"$fot[foto_id]\">
  6.    <ul>
  7.      <li>T&iacute;tulo</li>
  8.      <li><input type=\"text\" name=\"foto[][name]\" value=\"$fot[foto_name]\" size=20></li>
  9.      <li>Descripci&oacute;n:</li>
  10.      <li><textarea name=\"foto_descripcion\" cols=\"15\" rows=\"5\">$fot[foto_descripcion]</textarea></li>
  11.    </ul>
  12.  ";
  13. }
  14.  
  15. ?>
Luego recoges los datos de este modo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $fotos = $_POST['foto'];
  4. foreach ($fotos as $foto) {
  5.   $name = $foto['name'];
  6.   $id = $foto['id'];
  7.   mysql_query ( "UPDATE fotos SET foto_name='$name' WHERE foto_id='$id'", $link );
  8. }
  9.  
  10. ?>
  #5 (permalink)  
Antiguo 28/04/2011, 02:26
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 293
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Problema al recibir datos de input dinámicos

por que no mejor en esta parte lo haces asi :

Código PHP:

<li><input type="text" name="foto_name" value="$fot['foto_name'][0]" size=20></li
creo que tu for each esta mal

Código PHP:

<?php 
foreach($key as $value => $foto_name){ 

    
mysql_query "UPDATE fotos SET foto_name='".$_POST['foto_name'][0]."' WHERE foto_id=$foto_id "$link )or die"Error estas jodida : ".(mysql_error())
echo 
"Actualizadio ->".$key." - - Con id  : ".$foto_id;


?>


tambien te recominedo que evites estas cosas se ve muy feo

Cita:
name=\"foto_descripcion\"
Abre y sierra las etiquetas php y se vera mas logico que añadir tantos eslashes es matador.

Última edición por yooom; 28/04/2011 a las 02:33
  #6 (permalink)  
Antiguo 28/04/2011, 03:01
 
Fecha de Ingreso: abril-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema al recibir datos de input dinámicos

Hola de nuevo, hasta el momento nada me ha funcionado, el código de chemuki_ simplemente no manda nada a la base de datos, y el de yooom me da este error Warning: Invalid argument supplied for foreach() y gracias por la recomendación yooom, lo intentaré, aunq ya estoy muy acostumbrada........algun aporte más? porfavor??
  #7 (permalink)  
Antiguo 28/04/2011, 03:16
 
Fecha de Ingreso: abril-2011
Mensajes: 20
Antigüedad: 13 años
Puntos: 2
Respuesta: Problema al recibir datos de input dinámicos

Bueno, ya decia que no lo he probado... haz un "debug" a ver si el foreach funciona bien en primer lugar y luego miramos el tema de actualizar los datos.

Cambia el foreach de antes por:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $fotos = $_POST['foto'];
  4. foreach ($fotos as $foto) {
  5.   $name = $foto['name'];
  6.   $id = $foto['id'];
  7.  
  8.   echo "Foto_id: $id, Foto_name: $name<br />"
  9. }
  10.  
  11. ?>
  #8 (permalink)  
Antiguo 28/04/2011, 03:37
 
Fecha de Ingreso: abril-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema al recibir datos de input dinámicos

Chemuki_ me devuelve esto:

Foto_id: , Foto_name: Hola
Foto_id: , Foto_name:
Foto_id: 106, Foto_name:
Foto_id: , Foto_name: Hola7
Foto_id: , Foto_name:
Foto_id: 105, Foto_name:
Foto_id: , Foto_name: Hola6
Foto_id: , Foto_name:
Foto_id: 104, Foto_name:
Foto_id: , Foto_name: Hola5
Foto_id: , Foto_name:
Foto_id: 103, Foto_name:
Foto_id: , Foto_name: Hola4
Foto_id: , Foto_name:
Foto_id: 102, Foto_name:
Foto_id: , Foto_name: Hola3
Foto_id: , Foto_name:
Foto_id: 101, Foto_name:
Foto_id: , Foto_name: Hola2
Foto_id: , Foto_name:
Foto_id: 100, Foto_name:

  #9 (permalink)  
Antiguo 28/04/2011, 03:55
 
Fecha de Ingreso: abril-2011
Mensajes: 20
Antigüedad: 13 años
Puntos: 2
Respuesta: Problema al recibir datos de input dinámicos

Si, acabo de ver el error, pongo de nuevo el code de arriba corregido con algunas modificaciones

Código PHP:
Ver original
  1. <?php
  2.  
  3. $id = 0;
  4. while ( $fot = mysql_fetch_array ( $sql_fotos ) ) {
  5.   echo "
  6.    <input type=\"hidden\" name=\"foto[$id][id]\" value=\"$fot[foto_id]\">
  7.    <ul>
  8.      <li>T&iacute;tulo</li>
  9.      <li><input type=\"text\" name=\"foto[$id][name]\" value=\"$fot[foto_name]\" size=20></li>
  10.      <li>Descripci&oacute;n:</li>
  11.      <li><textarea name=\"foto_descripcion\" cols=\"15\" rows=\"5\">$fot[foto_descripcion]</textarea></li>
  12.    </ul>
  13.  ";
  14. $id++;
  15. }
  16.  
  17. ?>
Y probamos la salida de datos

Código PHP:
Ver original
  1. <?php
  2.  
  3. $fotos = $_POST['foto'];
  4. foreach ($fotos as $foto) {
  5.   $name = $foto['name'];
  6.   $id = $foto['id'];
  7.  
  8.   echo "Foto_id: $id, Foto_name: $name<br /
  9. >"
  10. }
  11.  
  12. ?>

Lo siento, no puedo probarlo, ya me contaras.
  #10 (permalink)  
Antiguo 28/04/2011, 04:19
 
Fecha de Ingreso: abril-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema al recibir datos de input dinámicos

chemuki_ muchisisisimas gracias, ya logre modificar la base de datos gracias a tu código, no tenia ni idea de como se hacia, ma ayudaste muchisimo.
No se como cerrar el tema, pero ya esta resuelto

Etiquetas: $_post, dinamicos, input, recibir, 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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:09.