entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

no llega al action

He introducido este formulario en mi página
http://andamiosbarcelona.com/contacto.html
Cuando doy a enviar no realiza ninguna acción


<form id="formulario" method="POST" action="formu.php">

<fieldset>

<input id="nombre" class="nick required" name="nombre" placeholder="Nombre" type="text" />
<input id="email" class="email required" name="email" placeholder="Email" type="text" />
<input id="telefono" class="subject" name="telefono" placeholder="Teléfono" type="text" />
<textarea id="eltexto" name="eltexto" class="required" placeholder="Texto"></textarea>
 <img src="captcha.php" /><br/>
 <input id="captcha" name="captcha" type="text" required="" placeholder="captcha">
<input type="submit" value="Enviar" /></fieldset>

</form>

El mismo formulario lo he puesto en la página principal http://andamiosbarcelona.com/index.html
y el botón enviar funciona perfectamente

Muchas gracias

2 Respuestas

3votos

Leonardo-Tadei Puntos227320

Hola @gonzalss,

estoy comparando ambas páginas y ambos formularios, el que funciona y el que no funciona, y no son tan parecidos...

El que no funciona, en realidad sí lo hace, y envía los datos vía AJAX. Seguramente formu.php no responde algo en el formato en que se espera la respuesta, y no se ve nada, aunque en la consola del navegador se ven las peticiones correctamente.

El de contacto.html no funciona porque tiene attachado al evento submit del FORM una cancelación del envío, para luego tomar los datos y hacer el envío AJAX. El evento está manejado desde el archivo JS jquery.form.min6d29.js y jquery.form.min3e5a.js.

Por qué se le attacha ese evento no puedo saberlo sin un análisis profundo de tódo el código involucrado, pero es muy posible que una diferencia importante sea que el formulario que funciona está en un DIV de clase contact_form y el que no funciona no... es, sin dudas, un JavaScript que está cambiando el comportamiento predefinido del formulario.

Saludos cordiales!

PD: no provoca error, pero tenés varias etiquetas HTML puestas en lugares inválidos, DIV cerrados que no fueron abiertos nunca y otros errores en el HTML. Pasate por http://validator.w3.org para verlos y corregirlos

1voto

gonzalss comentado

Muchas gracias de nuevo por amable respuesta
¿Que necesitarias para ver el error del formulario que tengo en la página de contacto ? He realizado varias pruebas sin exito.
La primera ha sido tal como me has sugerido, meter el formulario dentro de un DIV de la clase contact_form. En este caso el botón enviar no está operativo , no llega ni al formu.php.
Tienes razon, tal como está la página ahora si trabajo en local ,el formulario llega a formu.php , pero por la razón que desconozco y no logro averiguar se queda allí.
¿Que pasos me recomiendas dar ?
Otra cosa, el formulario del index y contacto comparten el mismo php (formu.php)

Atentamente

1voto

Leonardo-Tadei comentado

Hola @gonzalss,

que los formularios de index.htmlo y contacto.html apunten al mismo formu.php no causa ningún problema: descartá eso.

Como el problema está en los JavaScript, la forma de verlo es con el Inspector del Navegador (F12 en Firefox y en Chrome), que además de mostrarte el código generado, te permiten ver los eventos asociados a cada elemento del formulario.

Como la asignación de eventos la hace JavaScript, podrías comparar si ambas páginas cargan los mismos archivos o si hay ahí una diferencia.

También podría ser por una clase o un ID que está en index.html lo que lo hace funcinar, y al no repetirse en contacto.html no funciona.

Como primer paso igual yo le sacaría los errores que te devuelva el validador de la W3C, no sea cosa que un atributo mal cerrado o abierto de más está haciendo que se ejecute una porción de JS en dónde no corresponde.

Saludos cordiales!

1voto

gonzalss comentado

Me recomendarías entonces cargar odas las clases de la página de index.html en la de contacto.html,no ? . Supongo que son las que estarán dentro del HEAD

1voto

Leonardo-Tadei comentado

Sí, que en index.html y contacto.html cargue los mismos JavaScript, ni más, ni menos.

Revisá también que no haya código JavaScript de inicialización que esté en una página y no en la otra.

En resumen, que todo el JavaScript sea igual, y que el nombre de las clases y ID de los elementos HTML sea igual, en lo que respecta al formulario, al de index.html.

Saludos cordiales!

0voto

ivan_12 Puntos140

Puede ser porque el formulario llama a formu.php pero el formu.php tiene que estar dentro de la misma carpeta que esta el formulario de contacto. Y si no lo quieres así especificalo mejor.

Pruebalo. Yo lo hice todo en una misma carpeta y me va muy bien.

0voto

gonzalss comentado

Los html y el php están en la misma carpeta

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta