Foros del Web » Programando para Internet » PHP »

Como renombrar campo de texto automaticamente?

Estas en el tema de Como renombrar campo de texto automaticamente? en el foro de PHP en Foros del Web. Buenas a todos, tengo el siguiente problema: genero una tabla con los resultados de una bd. cada resultado genera una tabla. la cosa es que ...
  #1 (permalink)  
Antiguo 25/08/2006, 03:04
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Como renombrar campo de texto automaticamente?

Buenas a todos,

tengo el siguiente problema:

genero una tabla con los resultados de una bd. cada resultado genera una tabla. la cosa es que en cada uno de estos resultados, quiero adjuntar en un archivo un campo foto (con un examinar).

el problema es el siguiente: cuando solo tengo un registro, el campo se llama imagen, y no me da ningun problema. pero cuando tengo dos registros por ejemplo, como el campo imagen está repetido, si adjunto en uno foto y el otro queda vacío, entonces me dice que tengo que adjuntar un archivo (script que he creado yo de informacion).

puedo hacer que el campo imagen tenga un nombre, referenciado por id por ejemplo, para que al clickar automaticamente me suba el imagen1 por ejemplo?

a ver si alguien puede echarme un cable
  #2 (permalink)  
Antiguo 25/08/2006, 04:20
Avatar de Belero  
Fecha de Ingreso: agosto-2006
Mensajes: 98
Antigüedad: 17 años, 8 meses
Puntos: 0
No acabo de entender del todo el problema, podrías poner un poco de código con la explicación?
  #3 (permalink)  
Antiguo 25/08/2006, 04:26
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
claro que si belero.

tengo un campo de texto definido de la siguiente manera:

<input name="imagen" type="file" class="cajasTextoCursos" id="imagen">

este campo es para adjuntar una foto al servidor. tengo un

if (mysql_num_rows($res) > 0) {

y creo la tabla con unos datos. hay tantas tablas como registros obtengo de la base de datos. cada uno de estos datos es la referencia de un producto.

lo que pretendo hacer es poder adjuntar a cada producto, por separado una foto. como el campo se llama imagen, si tengo un registro solo subo la foto sin problemas. ahora bien, cuando tengo mas de un registro, si le doy a adjuntar foto, no me deja. y el problema es que como hay dos campos imagen, uno está vacío y me devuelve error.

lo que me gustaria es que cada campo imagen, tuviese un nombre, y que al darle a adjuntar archivo solo me subiese la foto del registros seleccionado.

te aclaro algo asi?
  #4 (permalink)  
Antiguo 25/08/2006, 04:59
Avatar de Belero  
Fecha de Ingreso: agosto-2006
Mensajes: 98
Antigüedad: 17 años, 8 meses
Puntos: 0
Si pones cada input en un formulario distingo creo que no tendrías problema para hacer lo que dices.

Para identificar el registro puedes utilizar un campo hidden.
  #5 (permalink)  
Antiguo 25/08/2006, 05:00
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
puedes hacer:
Código PHP:
echo "<input name='imagen' type='file' class='cajasTextoCursos' id='imagen".$prefijo."'>
"

siendo $prefijo cualquier valor sacado de la base de datos: la id, o cualquier dato relacionado con la imagen que pueda diferenciarla de otra.
con la id el resultado sería:
<input name="imagen" type="file" class="cajasTextoCursos" id="imagen1">
<input name="imagen" type="file" class="cajasTextoCursos" id="imagen2">.
...

prueba a ver si con eso te vale
__________________
ALOZORRO v5.0 (ahora en .es)
  #6 (permalink)  
Antiguo 25/08/2006, 05:11
Avatar de Belero  
Fecha de Ingreso: agosto-2006
Mensajes: 98
Antigüedad: 17 años, 8 meses
Puntos: 0
Si, es otra solución, aunque creo que habría que hacerlo en la etiqueta name, no id
html.conclase.net/w3c/html401-es/interact/forms.html#h-17.4

Aún así sigo apostando por no tener que diferenciar el nombre de los input si se utilizan en diferentes formularios, se ahorra trabajo y es más sencillo.
  #7 (permalink)  
Antiguo 25/08/2006, 05:12
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
gracias azrael666, aun no se si funcionara o no pq no se como comprobar el nombre del campo imagen. tengo lo siguiente:

<? echo "<input name='imagen' type='file' class='cajasTextoCursos' id='imagen".$idProducto."'> ";?>

he metido tu codigo en un script php, no?

ahora, a la hora de recibir el valor del campo, como lo hago? utilizo el siguiente codigo para subir la imagen:

Código:
	if (is_uploaded_file($_FILES['imagen']['tmp_name'])) {
		if ($_FILES['imagen']['type'] == "image/jpeg" || $_FILES['imagen']['type'] == "image/pjpeg"){

$foto_producto = "revista/".$idProducto."/".$idProducto_new.".jpg";

move_uploaded_file($_FILES['imagen']['tmp_name'],$foto_producto);
a ver si lo coinseguimos, saludos, y gracias
  #8 (permalink)  
Antiguo 25/08/2006, 09:35
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
nadie puede acabar de echarme un cable?

saludos!!
  #9 (permalink)  
Antiguo 25/08/2006, 11:47
Avatar de Belero  
Fecha de Ingreso: agosto-2006
Mensajes: 98
Antigüedad: 17 años, 8 meses
Puntos: 0
Veamos con un ejemplo.

subir.php
Supongamos que tienes datos del registro en un array, $registros.
Recorremos el array y generamos las tablas para mostrar los datos de cada registro.
En cada tabla ponemos un formulario para subir un archivo relacionado con ese registro, para ello ponemos un campo hidden con la id del registro y un campo file.

subiendo.php
Comprobamos que se le asigna el archivo a algún registro.
Comprobamos la imagen y la guardamos y asignamos al registro
...

subir.php
Código PHP:
<?php

$registros 
= array(
  
=> array(
    
'id' => '1',
    
'nombre' => 'registro 1',
    
'datos' => 'datosss'
  
),
  
=> array(
    
'id' => '2',
    
'nombre' => 'registro 2',
    
'datos' => 'datosss'
  
)
);


foreach(
$registros AS $registro)
{
  echo 
'
    <table border="1">
      <tr>
        <td>' 
$registro['nombre'] . '</td>
      </tr>
      <tr>
        <td>' 
$registro['datos'] . '</td>
      </tr>
      <tr>
        <td>
          <form action="./subiendo.php" method="post" enctype="multipart/form-data">
            <input type="hidden" name="id" value="' 
$registro['id'] . '" />
            <input type="file" name="archivo" />
            <input type="submit" value="Subir imagen" />
          </form>
        </td>
      </tr>
    </table>
    <br />
  '
;
}

?>
subiendo.php
Código PHP:
<?php

if(!empty($_POST['id']))
{
  
$id intval($_POST['id']);
  
$archivo =& $_FILES['archivo'];
  
  echo 
"Subiendo imagen al registro " $id "<br />";
  
print_r($archivo);
  exit;
  
  
/*
  * Compruebas si existe el registro en la BD
  */
  
  /*
  * Compruebas imagen y la guardamos asociándola al registro
  */
  
  /*
  * . . . . .
  */
}
else
{
  die(
"Fallo al validar el registro.");
}

?>
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 20:23.