Tengo un sitio que tiene 2 formas: una forma corta y una forma larga. Si miras http://dforbesinsuranceagency.com Verá el formulario breve junto a la foto del encabezado. La forma larga está en http://dforbesinsuranceagency.com/request-free-insurance-quotes/
Cuando el usuario presiona Enviar en el formulario corto, lo lleva a la página del formulario largo, por lo que esa parte funciona bien. La parte que me da problemas es que necesito que los valores ingresados en los campos de formulario corto Nombre, Apellido, Dirección de correo electrónico y Teléfono pasen a sus campos equivalentes en el formulario largo.
¿Cómo hago esto?
Así es como estoy redirigiendo el formulario corto al formulario largo (lo agregué a la sección Configuración adicional para el formulario corto):
on_sent_ok: "location = 'http://dforbesinsuranceagency.com//request-free-insurance-quotes';"
Cualquier ayuda sería apreciada.
Emisario
Hack, hack, hacky, hack hack hack… Sin sugerir “no usar un generador de formularios” No creo que haya una solución elegante: no puede usar el otro método PHP sugerido sin modificar el complemento en sí (y eso es una lata de gusanos). Propondré una solución Javascript pero hay algunas advertencias (a continuación):
jQuery(document).ready(function($){
$('#quick-quote form:first').submit(function(){
var foo = {};
$(this).find('input[type=text], select').each(function(){
foo[$(this).attr('name')] = $(this).val();
});
document.cookie="formData="+JSON.stringify(foo);
});
var ff = $('#container form:first');
if(ff.length){
var data = $.parseJSON(
document.cookie.match('(^|;) ?formData=([^;]*)(;|$)')[2]
);
if(data){
for(var name in data){
ff.find('input[name="+name+"], select[name="+name+"]').val(data[name]);
}
}
}
});
Lo que esto hará esencialmente es: en el envío, almacene sus opciones de miniformulario en un cookie
. Al cargar la página, buscará un formulario en el cuerpo principal de la página y aplicará los datos de cookies almacenados.
notas
- Los selectores de jQuery son deliberadamente ambiguos para evitar cualquier cambio futuro en su panel de administración/complemento que probablemente altere las ID de formulario (rompiendo así el script).
- No me estoy preocupando por emparejar nombres de campo/opción; por ejemplo, el cuadro de selección en su miniformulario se llama
insurance-type
sin embargo, el cuadro correspondiente en el formulario principal se llamains-type
– tendrás que asegurarte de que sean del mismo nombre. - Esto también se aplica a los valores del cuadro de selección: si no hay un valor coincidente, se ignorará (p. ej., algunos de sus valores en el formulario principal tienen »
»
caracteres al frente (y por lo tanto no coinciden).
-
Puede agregar ese script en cualquier lugar de su plantilla (en todas las páginas) siempre que jQuery se cargue primero, que ya se está utilizando en su plantilla.
– Emisario
18 de marzo de 2013 a las 11:52
-
@Cynthia Cool: es torpe, pero siempre que funcione bien… 🙂
– Emisario
18 de marzo de 2013 a las 14:01
-
Rutinariamente publico soluciones a los problemas del Formulario de contacto 7 en mi sitio. ¿Puedo publicar esto? Mucha gente ha buscado una manera de hacer esto.
– Cinthia
18 de marzo de 2013 a las 14:06
prueba esto.
establezca la acción de nuestro primer formulario en un archivo php llamado xyz.php
<form method="post" action="xyz.php">
<input type="text" name="name">
<input type="text" name="email_address">
<input type="submit" value="Go To Step 2">
</form>
el archivo xyz.php creará un nuevo formulario para ti, que en este caso es tu segundo formulario (el grande). Configure la acción del formulario según sea necesario. el código de su xyz.php se verá así.
<form method="post" action="form3.php">
<input type="text" name="name" value="<?php echo $_POST['name']; ?>">
<input type="text" name="email_address" value="<?php echo $_POST['email_address']; ?>">
<input type="radio" group="membership_type" value="Free">
<input type="radio" group="membership_type" value="Normal">
<input type="radio" group="membership_type" value="Deluxe">
<input type="checkbox" name="terms_and_conditions">
<input type="submit" value="Go To Step 3">
</form>
donde los campos de entrada del primer formulario ya estarán llenos con los datos proporcionados por el usuario en el primer formulario.
Puede crear el primer formulario usted mismo y dejar que el formulario de contacto cree el segundo formulario proporcionando los valores predeterminados utilizando el método anterior.
¡Espero que esto ayude!
-
¿Cómo funciona esto con el complemento Contact Form 7 para WordPress?
– Cinthia
18 de marzo de 2013 a las 11:24