Foros del Web » Programando para Internet » Javascript »

Envio de formulario con onclick

Estas en el tema de Envio de formulario con onclick en el foro de Javascript en Foros del Web. Hola a tod@s: Tengo un formulario que quiero que se envie al hacer un click en la imagen he tratado de acer lo que veis ...
  #1 (permalink)  
Antiguo 22/03/2005, 08:36
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 4 meses
Puntos: 0
Pregunta Envio de formulario con onclick

Hola a tod@s:
Tengo un formulario que quiero que se envie al hacer un click en la imagen he tratado de acer lo que veis abajo pero no envia nada.
Los valores de envio estan comprobados.
Agradeceria una orientacion al respecto.
Gracias
Un Saludo



Código:
 
<form name="form1" method="post" action="<? $_SERVER['PHP_SELF'] ?>">

<input name="directorio" type="image" src="imagenes/folder_red.png"  value="<? echo $file ?>" onclick="form1.submit();"><? echo $file ?>

<input name="directorio" type="image" src="imagenes/folder_red.png"  value="<? echo $file ?>" onclick="form1.submit();"><? echo $file ?>

<input name="directorio" type="image" src="imagenes/folder_red.png"  value="<? echo $file ?>" onclick="form1.submit();"><? echo $file ?>

<input type="checkbox" name="fichero[]" value="<? echo $value ?>"><img src="imagenes/vacio.png" ><?echo $value ?>;

<input type="checkbox" name="fichero[]" value="<? echo $value ?>"><img src="imagenes/vacio.png" ><?echo $value ?>;

<input type="checkbox" name="fichero[]" value="<? echo $value ?>"><img src="imagenes/vacio.png" ><?echo $value ?>;

<input type="hidden" name="control" value"enviado">

<input type="submit" name="Submit" id="Submit" value="Enviar">
</form>
__________________
Hay tanto que aprender y tan poco tiempo
  #2 (permalink)  
Antiguo 22/03/2005, 09:13
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
no será por tantos submit??? y si creas una función y la llamanas?
Código:
<script lag...>
function enviar() {
   submit();
   return false
}
</script>

//ya luego
<img="..." onClick="enviar()">
no le veo mucha diferencia.. pero uno núnca sabe :-p.

Ojalá te sirva.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 22/03/2005, 09:21
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 4 meses
Puntos: 0
Gracias por responder jam1138, pero......
No me ha servido lo bueno es que no hace nada ni me da errores en la barra de navegacion.
De nuevo gracias
__________________
Hay tanto que aprender y tan poco tiempo
  #4 (permalink)  
Antiguo 22/03/2005, 09:28
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
debes colocar

document.formulario_name.submit();

eso te envía el formulario desde javascript...

Se usa mucho para mandar el formulario una vez que validaste los datos del mismo...

Espero que te sirva
Saludos
PD: Muy bueno ese abatar de Homero !!!!!!!
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 22/03/2005, 09:37
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola Torus

También puedes cambiar: <input type="submit"...

por: <input type="image" src="tuimagen.jpg" />

Cuando lo pulses hará lo mismo que si pulsarar un botón submit.

Saludos,
  #6 (permalink)  
Antiguo 22/03/2005, 13:41
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 4 meses
Puntos: 0
Gracias a todos por vuestro interes.
Me vale la opcion de monoswim
document.formulario_name.submit();
Ahora el problema es que solo me envia un dato numerico y no el dato que se encuentra en value, he revisado el codigo y aparentemente esta bien es como el que postee mas arriba.
Me imagino que esto es harina de otro costal
Si Alguien tiene una sugerencia BIENVENIDA
Saludos cordiales
__________________
Hay tanto que aprender y tan poco tiempo
  #7 (permalink)  
Antiguo 22/03/2005, 13:49
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
¡Oops! Te recomendaba poner un input type=image y ahora que me fijo mejor veo que tienes 3 Mejor me voy a descansar un rato
  #8 (permalink)  
Antiguo 22/03/2005, 15:34
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Pues el document.form.submit() te envia el formulario exactamente igual que el botón submit de HTML...

No debería haber diferencia, lo que puede estar confundiéndote es el checkbox...

Saludos
__________________
Esteban Quintana
  #9 (permalink)  
Antiguo 23/03/2005, 00:57
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
... los checkbox los pasas como un arreglo... me parece para leer esto necesitas un foreach lo ocupas??... ... si no lo ocuparas deberia pasarte el valor de "array" y no uno numerico... mejor me callo! de plano no aporto nada.

... por si las moscas.. en las FAQ del foro de PHP esta cómo recoger un array... creo igual aplicado a checkbox's.

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #10 (permalink)  
Antiguo 23/03/2005, 03:21
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 4 meses
Puntos: 0
Gracias por vuestras aportaciones.
Efectivamente jam1138, esos datos los recojo en un foreach ($_POST as $key => $value)etc...
Como veis en el codigo tengo dos tipos de imput uno directorio y otro checkbox.
Lo que pretendo es generar un boton para cada directorio (lo he hecho con botones normales y funciona cambiando el nombre del <input name="directorio" por <input name="directorio[]").

Pero me salen los tipicos botones del formulario lo que se pretende es que al clickear en una imagen actue como un boton enviando la informacion.

de esta forma solo hay dos posibilidades de enviar el formulario o marcando un checkbox y darle al boton de enviar o pinchando en la imagen que gracias a document.form.submit() lo envia sin mas.
Sigo investigando
Gracias y Saludos cordiales
__________________
Hay tanto que aprender y tan poco tiempo
  #11 (permalink)  
Antiguo 23/03/2005, 06:08
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 4 meses
Puntos: 0
Es mas posteo el code para que lo examineis y a ver si sabeis por que no pasa los valores.

Código HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form1" method="post" action="borrador.php">
<input type='image'src='imagenes/folder_red.png' border='0' name='boton'  value='1'>1
<br><input type='image' src='imagenes/folder_red.png' border='0' name='boton'  value='prueba1'>prueba1
<br><input type='image' src='imagenes/folder_red.png' border='0' name='boton'  value='prueba2'>prueba2
<br><input type='image' src='imagenes/folder_red.png' border='0' name='boton'  value='imagenes'>imagenes
<br><input type='image' src='imagenes/folder_red.png' border='0' name='boton'  value='sitemap_es'>map_es
<br>
<input type='checkbox' name='fichero[]' value='borrador.php'><img src='imagenes/html.png' width='16' height='16'>&nbsp;borrador.html 
<br><input type='checkbox' name='fichero[]' value='index.html'><img src='imagenes/html.png' width='16' height='16'>&nbsp;index.html 
<br><input type='checkbox' name='fichero[]' value='eliminar.html'><img src='imagenes/html.png' width='16' height='16'>&nbsp;eliminar.html 
<br><input type='checkbox' name='fichero[]' value='index_sav.html'><img src='imagenes/html.png' width='16' height='16'>&nbsp;index_sav.html 
<br><input type='checkbox' name='fichero[]' value='index2.html'><img src='imagenes/html.png' width='16' height='16'>&nbsp;index2.html 
<br>

 <input type="submit" name="Submit"  value="Enviar">
</form>
</body>
</html> 
En borrador.php solo tengo lo siguiente que es para chequear lo que envia


Código PHP:
<?php foreach($_POST as $key => $value ) {

 echo 
"el indice es ".$key."  El valor es  ".$value."<br>";             
}     

?>
Yo me estoy volviendo loco
Saludos cordiales
__________________
Hay tanto que aprender y tan poco tiempo
  #12 (permalink)  
Antiguo 23/03/2005, 06:29
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Talvés lo confundes con el name

A que te refieres con fichero[]

el [] es para el array pero eso lo hace solo el formulario si le colocas solamente fichero ya tendrás el array creado y los llamas como

fichero[1]

Se entiende, no le coloques [] que estos los coloca el navegador automáticamente...

Saludos
__________________
Esteban Quintana
  #13 (permalink)  
Antiguo 23/03/2005, 06:54
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
:pensando... y cuándo recoges el arreglo???... creo lo correcto es
Código PHP:
<?php foreach($_POST['fichero'] as $key => $value ) {

echo 
"el indice es ".$key."  El valor es  ".$value."<br>";            
}    

?>
Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #14 (permalink)  
Antiguo 23/03/2005, 07:35
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 4 meses
Puntos: 0
Vamos por partes
1) monoswim el [] que pongo no es significativo pues esa parte del formulario funciona y envia los datos del checkbox y se visualizan sin problema.

2)jam1138 lo que hago al utilizar foreach($_POST as $key => $value ) es recojer y recorrer TODOS los datos posibles enviados por post.
Es cierto que en el code php falta precisamente $_POST['boton'] que es el que recoje los valores de la parte conflictiva del formulario.

Pensar que si pinchan en la parte del formulario donde quiero sustituir el boton por una imagen, el formulario se envia y segun que dato enviase ($_POST['boton'] y/o $_POST['fichero]) realizaria una funcion u otra.
He probado con....

<input type="image" src="imagenes/folder_red.png" border="0" name="boton" value="$file" onClick="'document.form1.submit();">&nbsp; $file";
y no funciona o mejor dicho funciona pero envia unos datos numericos que no se de donde los saca.
Si fuese un boton normal funcionaria (comprobado)

<input type="submit" name="Submit2" value="$file">
PROBLEMA=>que esteticamente se ve muy chapucero y que ademas en el boton se lee el dato a enviar.

Tambien sé que con un select y un onchange = document.formulario_name.submit();
estaria solucionado, pero esteticamente no me encaja.
Un cordial Saludo
__________________
Hay tanto que aprender y tan poco tiempo

Última edición por Torus; 23/03/2005 a las 07:51
  #15 (permalink)  
Antiguo 23/03/2005, 08:11
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 4 meses
Puntos: 0
parece increible pero con :

<input type="image" src="imagenes/folder_red.png" border="0" name="boton" value="$file" onClick="'document.form1.submit();">&nbsp; $file";

Los datos que envia SON LAS CORDENADAS DEL RATON SOBRE LA IMAGEN
directorio_x variable es 0
directorio_y variable es 2

Saludos
__________________
Hay tanto que aprender y tan poco tiempo
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 03:45.