Foros del Web » Programando para Internet » PHP »

Enviar formulario con campo type image

Estas en el tema de Enviar formulario con campo type image en el foro de PHP en Foros del Web. Hola amigos, tengo el siguientes código: Código HTML: <script type= "text/JavaScript" > <!-- function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))> 0&&parent.frames.length) { ...
  #1 (permalink)  
Antiguo 01/02/2012, 07:47
 
Fecha de Ingreso: agosto-2011
Ubicación: Cuba, Pinar del Río
Mensajes: 82
Antigüedad: 12 años, 8 meses
Puntos: 0
Enviar formulario con campo type image

Hola amigos, tengo el siguientes código:

Código HTML:
<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document;
if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++)
x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++)
x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2];
val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an
e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number
between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is
required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script> 
Código PHP:
<?php
if (isset($enviar)){
echo 
$nombre;
}
?>
Código HTML:
<form name="alojar" method="post" action="[PHP]<?php $_SERVER['PHP_SELF'] ?>[/PHP]" style="margin:0px;" enctype="multipart/form-data" onsubmit="MM_validateForm('nombre','','R'); return document.MM_returnValue;">  

        Nombre:<input name="nombre" type="text" size="25" /><input name="enviar" type="image" style="cursor:pointer"  src="guardar.png" border="0"/>
        
  </form> 
Y el problema que tengo es al enviar el formulario con el elemento type="image" pues cuando pregunto isset($enviar) para que me muestre el valor de la variable si se envia el formulario, no me muestra nada, sin envargo no pregunto por la variable $enviar y muestro la variables $nombre si me la visualiza.

Como puedo solucionar esto para que me muestre el valor del formulario si se da clic en el boton image.
  #2 (permalink)  
Antiguo 01/02/2012, 07:54
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Enviar formulario con campo type image

1 - php recibe las variables por $_POST o $_GET respectivamente

2 - en el caso de archivos, se usa $_FILES
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 01/02/2012, 09:22
 
Fecha de Ingreso: agosto-2011
Ubicación: Cuba, Pinar del Río
Mensajes: 82
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Enviar formulario con campo type image

Mira, no se si nos estamos entendiendo, en realidad lo que yo quiero es sustituir el elemto submit o button por el image y poder mandar el formulario usando una imagen, hasta donde he leido el elemto image hace la misma funcion que el elemto submit pero el problema es que cuando pregunto si el elemto image ha sido enviado, no me muestra los datos que envia por el formulario.
  #4 (permalink)  
Antiguo 01/02/2012, 09:33
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Enviar formulario con campo type image

A lo que se refiere maycolalvarez es que php recibe los valores a través del cuerpo POST o la cabecera GET.

y tu hicicste isset($enviar);

La variable $enviar no existe (Al menos eso deberías creer, porque se puede con caracteristicas deprecadas de PHP), si existe $_POST['enviar']; ya que tu form lo enviaste con method='post'

saludos.
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
  #5 (permalink)  
Antiguo 01/02/2012, 09:39
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Enviar formulario con campo type image

l rcuerd q n stamos hbldo pr sms, pr favr us n lnguaj corect

en efecto, ¿de donde proviene la variable $enviar?

además si lo que quiere es sustituir el boton input, simplemente envíe el from con javascript:

<img onclick="document.forms['name_form'].submit();" ... />
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #6 (permalink)  
Antiguo 01/02/2012, 10:11
 
Fecha de Ingreso: agosto-2011
Ubicación: Cuba, Pinar del Río
Mensajes: 82
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Enviar formulario con campo type image

yo uso:

Cita:
<?php
extract($_POST,EXTR_SKIP);
extract($_GET,EXTR_SKIP);
?>
por eso no me refiero a las variables usando $_POST ni $_GET, pero no obstante, yo pregunto if (isset($enviar)), porque en caso de que el formulario no sea enviado no debe hacerle nada a las variables del formulario y si es enviado debe almacenarme los datos, yo pongo ese ejemplo porque quiero que me visualice el contenido de la variable sobre el formulario una vez que se envíe el formulario y en caso de no enviarlo solo me debe mostrar el formulario, esto lo hago para ver si me llega el valor del formulario. Si no pregunto por la variables $enviar si me visualiza el contenido de la variable $nombre, pero si pregunto por ella no me muestra el contenido de la variable $nombre cuando envío el formulario y por el firebug estoy viendo que la variable $enviar es enviada
  #7 (permalink)  
Antiguo 01/02/2012, 10:23
 
Fecha de Ingreso: agosto-2011
Ubicación: Cuba, Pinar del Río
Mensajes: 82
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Enviar formulario con campo type image

maycolalvarez, si envío el formulario como me dices con javascript entonces no me sirve el código de validación que mostré y lo que quiere es que me mantenga la validación del formulario y poder usar el input type="image"
  #8 (permalink)  
Antiguo 01/02/2012, 11:10
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Enviar formulario con campo type image

tan simple como llamar esa función antes del submit
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #9 (permalink)  
Antiguo 01/02/2012, 11:22
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 11
Respuesta: Enviar formulario con campo type image

El error esta justamente en tu form en esta linea:
Código PHP:
Ver original
  1. <input name="enviar" type="image" style="cursor:pointer"  src="guardar.png" border="0"/

Al hacerlo de esta manera, solo firefox lo reconoce.
Lo que puedes hacer es simular el boton de la siguiente manera, y luego mediante css aplicar la imagen de fondo a ese submit, veras que bien funciona.

Código PHP:
Ver original
  1. <input type="submit" name="submit" id="submit" value=" "/>
  #10 (permalink)  
Antiguo 01/02/2012, 11:29
 
Fecha de Ingreso: agosto-2011
Ubicación: Cuba, Pinar del Río
Mensajes: 82
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Enviar formulario con campo type image

Gracias amigos, por haberme ayudado con sus criterios y conocimientos. maximilianojcelis, eso mismo que me propones es lo que acabo de hacer es el resultado que quería lograr e incluso más práctico lo encuentro, pues mantengo el input lo mismo submit que button y con css lo modifico para que tome la apariencia de la imagen.

Una vez más gracias a todos he podido darle solución a mi problema. Nos vemos.

Etiquetas: formulario, image, type, variables, campos
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 00:57.