Foros del Web » Creando para Internet » HTML »

Problema con un Formulario

Estas en el tema de Problema con un Formulario en el foro de HTML en Foros del Web. Bueno tengo un Formulario anidado en una tabla en el que ingreso 3 campos Imagen, Descripcion y Precio. Ahora bien quiero que una de las ...
  #1 (permalink)  
Antiguo 14/03/2010, 18:43
 
Fecha de Ingreso: marzo-2010
Mensajes: 13
Antigüedad: 7 años, 8 meses
Puntos: 0
Problema con un Formulario

Bueno tengo un Formulario anidado en una tabla en el que ingreso 3 campos Imagen, Descripcion y Precio. Ahora bien quiero que una de las celdas de la tabla me muestre la imagen una vez introduzco su nombre en el campo imagen del formulario. He probado todo lo que conozco y he buscado por internet, pero no encuentro nada que me sirva de guia, así que si alguien sabe como solucionarlo se lo agradecería.

Adolfo...

Para que lo entendaís mejor os dejo el codigo que tengo estructurado:

<br ><form action="" name= "IntrProd" method="post">
<table width=100% border="0" cellspacing="0">

<tr>
<th width=75% scope="col"><table width=100% border="0">
<tr><th colspan="4" bgcolor="#cccccc" align="center"> Introducción de Productos</th></tr>
<th scope="col">Imagen</th>
<th scope="col" align="center"><input type="text" name="Imagen" value="" maxlength="40" size="40" /></th>
</tr>
<tr>
<td align="center">Descripción</td>
<td align="center"><input type="text" name="descrip" value="" maxlength="40" size="100" /></td>
</tr>
<tr>
<td align="center">Precio</td>
<td align="center"><input type="text" name="precio" value="" maxlength="40" size="40" /></td>
</tr>
<td></td>
<td align="center"> <input type=submit value="Insertar registro" align="center" /></td>
</table></th>
<th width="126" scope="col"><img src= "Productos\ (aaui deberia insertar el valor del input con name=Imagen) id="grafico" width="126" height="83" /></a></th>
</tr>
  #2 (permalink)  
Antiguo 14/03/2010, 21:34
Avatar de jmdz  
Fecha de Ingreso: marzo-2010
Ubicación: ¿Acá?
Mensajes: 54
Antigüedad: 7 años, 9 meses
Puntos: 2
Respuesta: Problema con un Formulario

La respuesta tu pregunta depende de si podes usar scripting del lado del servidor o no. Supongamos que si y que queres recargar la página y que ahí se muestre la imagen (también supongamos que usas PHP):

Código HTML:
Ver original
  1. [...]
  2. <th width="126" scope="col"><img src= "Productos/<?php echo $_REQUEST ['Imagen'];?>" id="grafico" width="126" height="83" /></a></th>
  3. [...]

Ahora suponiendo que no queres que se recargue la página, tendremos que usar un script del lado del cliente, pero tene en cuenta que cualquiera puede desabilitar JavaScript y chau con la funcionabilidad.

Código HTML:
Ver original
  1. [...]
  2. <input type="text" name="Imagen" value="" maxlength="40" size="40" onchange="document.getElementById('grafico').src='Productos/'+this.value;"/>
  3. [...]
  4. <img src="" id="grafico" width="126" height="83" />
  5. [...]

Por cierto dale una repasadita a tu código porque no coinciden las etiquetas de las filas.

De paso, si algún forista (o forero o como se diga) con más experiencia puede que me indique como se maneja esto de los mensajes en un foro que se salen del tópico del foro. Saludos.
  #3 (permalink)  
Antiguo 14/03/2010, 21:36
Avatar de dedydamy  
Fecha de Ingreso: marzo-2010
Ubicación: Aca :D
Mensajes: 78
Antigüedad: 7 años, 9 meses
Puntos: 4
Respuesta: Problema con un Formulario

necesitas php :D :D

si lo necesitas te digo :D
  #4 (permalink)  
Antiguo 15/03/2010, 09:47
 
Fecha de Ingreso: marzo-2010
Mensajes: 13
Antigüedad: 7 años, 8 meses
Puntos: 0
Respuesta: Problema con un Formulario

Gracias por responder jmdz y dedydamy.

Jmdz, Gracías utilize lo que me decías y no se si lo hice bien o no pero no me funciono. y si utilizo php aunque estoy a un nivel muy básico.

dedydamy, Gracias hasta ahora me defiendo un poquito, pero si veo algo que no puedo solucionar por mi cuenta ya te comentaré a ver si tienes alguna idea que me sirva.

Quizás no me he explicado bien. Estoy trabajando con PHP (no es que sepa mucho pero me defiendo bastante bien), bueno es la primera vez que lo utilizó y por ahora no tengo muchos problemas, además hay mucha información en la red que me soluciona la mayoría de los problemas que me surgen. Pero en este caso, no he encontrado nada.

Os esplico mas detalladamente.

Tengo una página de Administración desde donde llamo a un script en PHP una funcion con sus parametros para que me muestre un determindo formulario que utilizare para rellenar una Base Datos en MySql. la estructura real sería así mas o menos:

Administracion.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<?php include ('funcion.php') ?>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es" dir="ltr">
<head>
<title> Dolors</title>

</head>
<body>

<h1> Dolors</h1>





<div id="Administrar" align="center" border="2">
<form action="" id="form1" method="get" >
<table width="200">
<tr>
<td><label>
<input type="radio" name="Administracion" value="Categorias" id="Administracion_0" />
Adm. Categorias</label></td>
</tr>
<tr>
<td><label>
<input type="radio" name="Administracion" value="Productos" id="Administracion_1" />
Adm. Productos</label></td>
</tr>
</table>
<label for="Enviar"></label>
<input type="submit" name="Enviar" id="Enviar" value="Enviar" />
</form>
</div>

a partir de aqui llamo a la funcion muestraFrm


<div id="RellenaDatos"><?php
$variable=muestraFrm('');
if (isset($_GET['Administracion'])) {
$variable = muestraFrm($_GET['Administracion']);
}
?>
</div>



<!-- Page END -->





</body>
</html>

Esta parte de codigo funciona correctamente

--------------------


funcion.php

<?
function muestraFrm($esFormul) {
if ($esFormul==''){
" " ;
} else {
if ($esFormul=='Categorias') {
frm() ;
} else {
frmRellenar_Productos() ;
}
return ;
}
}



function frmRellenar_Productos()
{
//display the form that asks for name and address
?>
<br ><form action="" name= "IntrProd" method="post">
<table width=100% border="0" cellspacing="0">

<tr>
<th width=75% scope="col"><table width=100% border="0">
<tr><th colspan="4" bgcolor="#cccccc" align="center"> Introducción de Productos</th></tr>
<th scope="col">Imagen</th>
<th scope="col" align="center"><input type="text" name="Imagen" value="" maxlength="40" size="40" /></th>
</tr>
<tr>
<td align="center">Descripción</td>
<td align="center"><input type="text" name="descrip" value="" maxlength="40" size="100" /></td>
</tr>
<tr>
<td align="center">Precio</td>
<td align="center"><input type="text" name="precio" value="" maxlength="40" size="40" /></td>
</tr>
<td></td>
<td align="center"> <input type=submit value="Insertar registro" align="center" /></td>
</table></th>
<th width="126" scope="col"><img src= "Productos\<img src= "Productos/ Aqui deberia ir el texto que pongo en el Input Imagen"id="grafico" width="126" height="83" /></a></th>
</tr>

</table><hr>
</form>
<?
}

-------

Esto me muestra el formulario pero como muestro la imagen antes de enviar los datos.??? Es decir cuando salto al campo descripcion tras rellenar el campo imagen quiero que se muestre la imagen en la celda con id=grafico.

Espero haberme explicado mejor.

Gracias de antemano...

Y si veís algo incorrecto en la estructura de mi código acepto con sugerencias, pues hacía mucho tiempo que no escribía codigo.

Adolfo...

Última edición por Belcebu6001; 15/03/2010 a las 09:54
  #5 (permalink)  
Antiguo 15/03/2010, 10:31
Avatar de jmdz  
Fecha de Ingreso: marzo-2010
Ubicación: ¿Acá?
Mensajes: 54
Antigüedad: 7 años, 9 meses
Puntos: 2
Respuesta: Problema con un Formulario

Como queres que se muestre la imagen antes de enviar los datos debes usar JavaScript.

Acá va el código del form para que haga eso y revisadas las etiquetas de la tabla (mira los comentarios). Suerte.

Código HTML:
Ver original
  1. <form action="" name= "IntrProd" method="post">
  2. <table width=100% border="0" cellspacing="0">
  3.     <tr>
  4.         <th width=75% scope="col">
  5.             <table width=100% border="0">
  6.                 <tr>
  7.                     <th colspan="2" bgcolor="#cccccc" align="center"> Introducción de Productos</th><!-- esta tenia colspan=4 -->
  8.                 </tr>
  9.                 <tr><!-- esta no estaba -->
  10.                     <th scope="col">Imagen</th>
  11.                     <th scope="col" align="center"><input type="text" name="Imagen" value="" maxlength="40" size="40" onchange="document.getElementById('grafico').src='Productos/'+this.value;" /></th><!-- agregue el onchange con su valor -->
  12.                 </tr>
  13.                 <tr>
  14.                     <td align="center">Descripción</td>
  15.                     <td align="center"><input type="text" name="descrip" value="" maxlength="40" size="100" /></td>
  16.                 </tr>
  17.                 <tr>
  18.                     <td align="center">Precio</td>
  19.                     <td align="center"><input type="text" name="precio" value="" maxlength="40" size="40" /></td>
  20.                 </tr>
  21.                 <tr><!-- esta no estaba -->
  22.                     <td></td>
  23.                     <td align="center"> <input type=submit value="Insertar registro" align="center" /></td>
  24.                 </tr><!-- esta no estaba -->
  25.             </table>
  26.         </th>
  27.         <th width="126" scope="col"><img src="" id="grafico" width="126" height="83" /></a></th><!-- le dejamos el src vacio -->
  28.     </tr>
  29. <hr>
  30. </form>
  #6 (permalink)  
Antiguo 15/03/2010, 11:29
 
Fecha de Ingreso: marzo-2010
Mensajes: 13
Antigüedad: 7 años, 8 meses
Puntos: 0
Respuesta: Problema con un Formulario

Gracías, funciona correctamente.

Me suponia que era algo así, lo había probado ya con onchange, pero no pasaba bien los parametros y no me mostraba la imagen (creo!!!).

Lo he puesto tal como me indicas y funciona...

Gracias otra vez.

Etiquetas: 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 16:45.