Foros del Web » Programando para Internet » Javascript »

Medición de envíos

Estas en el tema de Medición de envíos en el foro de Javascript en Foros del Web. Buenas, tengo un formulario y quiero medir los envíos con Google Analytics. Para ello normalmente creo un evento onSubmit en el formulario y funciona. Así: ...
  #1 (permalink)  
Antiguo 01/05/2013, 16:17
 
Fecha de Ingreso: mayo-2013
Mensajes: 36
Antigüedad: 11 años
Puntos: 0
Medición de envíos

Buenas, tengo un formulario y quiero medir los envíos con Google Analytics.

Para ello normalmente creo un evento onSubmit en el formulario y funciona. Así:

Código HTML:
Ver original
  1. <form id="register-form" method="post" onSubmit="_gaq.push(['_trackEvent', 'Landing', 'Submit']);" >
  2.       <input type="text" name="email" placeholder="Tu email" />
  3.       <input type="text" name="name" placeholder="Tu nombre" />
  4.       <input type="text" name="phone" placeholder="Número de teléfono" />
  5.       <input type="submit" name="submit" value="Quiero saber más sobre esta oferta" class="btn" />
  6.      </form>

Sin embargo esta vez no lo consigo. Yo soy de mk online, no soy programadora y no entiendo mucho. Solo hacer pequeños ajustes. Me han dicho que mi formulario está en AJAX. Puede ser por eso?? dónde debo poner el evento de Analytics??
  #2 (permalink)  
Antiguo 02/05/2013, 04:32
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 8 meses
Puntos: 297
Respuesta: Medición de envíos

Tu evento está bien ubicado, lo que no sé es si la función de Google Analytics es esa.
__________________
Freelance Developer — www.rubenmartin.me PHP, SQL, Wordpress, Prestashop, Codeigniter, Laravel
RegaloConsolas — www.regaloconsolas.com Sorteo juegos, consolas y accesorios
  #3 (permalink)  
Antiguo 02/05/2013, 08:40
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Medición de envíos

Cita:
Iniciado por dudamk Ver Mensaje
Me han dicho que mi formulario está en AJAX. Puede ser por eso?? dónde debo poner el evento de Analytics??
Si, puede influir, pero de tu código no se observa uso alguno de Ajax. Tendrías que pasar el código, js incluido, en forma más detallada

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 02/05/2013, 14:30
 
Fecha de Ingreso: mayo-2013
Mensajes: 36
Antigüedad: 11 años
Puntos: 0
Respuesta: Medición de envíos

Gracias! Os copio todo:

index.html

Código HTML:
Ver original
  1. <form id="register-form" method="post" onSubmit="_gaq.push(['_trackEvent', 'Landing', 'Submit']);" >
  2.       <input type="text" name="email" placeholder="Tu email" />
  3.       <input type="text" name="name" placeholder="Tu nombre" />
  4.       <input type="text" name="phone" placeholder="Número de teléfono" />
  5.       <input type="submit" name="submit" value="Quiero saber más sobre esta oferta" class="btn" />
  6.      </form>


register.php

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['action'])) { // Checking for submit form
  3. $my_emails  = array("[email protected]", "[email protected]", "[email protected]"); // Your email address
  4. if($_POST['action']=='add') {
  5. $email   = trim(strip_tags(addslashes($_POST['email'])));
  6. $name    = trim(strip_tags(addslashes($_POST['name'])));
  7. $phone   = trim(strip_tags(addslashes($_POST['phone'])));
  8. $pattern    = '/^[^\W][a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\.[a-zA-Z]{2,4}$/';
  9. if($phone==""){
  10. echo "error|Por favor, introduce tu número de teléfono";
  11. }
  12. if($email != "" && $name != "" && $name != "") {
  13. if(preg_match($pattern, $email)) {
  14. $messages   = "Has recibido una solicitud de información de: " . $name . "\r\n" . "Puedes responder directamente a este email o llamarle al siguiente número de teléfono: " . $phone;
  15. $headers = "From: " . $email . "\r\n";
  16. foreach($my_emails as $my_email) mail($my_email, $subject, $messages, $headers);
  17. echo "success| ¡Muchas gracias! En breve nos pondremos en contacto contigo";
  18. } else {
  19. echo "eerror|Por favor, introduce una dirección de email válida";  
  20. }
  21. } else {
  22. echo "error| Por favor, rellena todos los campos"; 
  23. }
  24. }
  25. } else { // Submit form false
  26. header("Location: index.html");
  27. }
  28. ?>


main.js

Código Javascript:
Ver original
  1. // Register form process function
  2.     $("#register-form").submit(function() {
  3.         var submitData  = $(this).serialize();
  4.         var $email      = $(this).find("input[name='email']");
  5.         var $name       = $(this).find("input[name='name']");
  6.         var $phone      = $(this).find("input[name='phone']");
  7.         var $submit     = $(this).find("input[name='submit']");
  8.         var output      = '';
  9.        
  10.         $email.attr('disabled','disabled');
  11.         $name.attr('disabled','disabled');
  12.         $phone.attr('disabled','disabled');
  13.         $submit.attr('disabled','disabled');
  14.        
  15.         $.ajax({ // Send an offer process with AJAX
  16.             type: "POST",
  17.             url: "register.php",
  18.             data: submitData + "&action=add",
  19.             dataType: "html",
  20.             success: function(msg){
  21.                
  22.                 if(parseInt(msg, 0) !== 0) {
  23.                     var msg_split = msg.split("|");
  24.                     if(msg_split[0] === "success") {
  25.                         $email.val('').removeAttr('disabled');
  26.                         $name.val('').removeAttr('disabled');
  27.                         $phone.val('').removeAttr('disabled');
  28.                         $submit.removeAttr('disabled');
  29.                         output  += '<div class="submit-status submit-status-success">' + msg_split[1] + '</div>';
  30.                         $("body").prepend(output).find(".submit-status").hide().slideDown().delay(4000).slideUp(function() { $(this).remove(); });
  31.                     } else {
  32.                         $email.removeAttr('disabled');
  33.                         $name.removeAttr('disabled');
  34.                         $phone.removeAttr('disabled');
  35.                         $submit.removeAttr('disabled');
  36.                         output  += '<div class="submit-status submit-status-error">' + msg_split[1] + '</div>';
  37.                         $("body").prepend(output).find(".submit-status").hide().slideDown().delay(4000).slideUp(function() { $(this).remove(); });
  38.                     }
  39.                 }
  40.             }
  41.         });
  42.         return false;
  43.     });
  #5 (permalink)  
Antiguo 02/05/2013, 15:22
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Medición de envíos

Probá de hacer el envío de los analitycs con onclick en el submit, ya que el evento submit del form te está enviando x ajax

Código:
   $("#register-form").submit(function() {
        var submitData  = $(this).serialize();
otra alternativa que vi es esta

http://www.lunametrics.com/blog/2012...gle-analytics/

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 03/05/2013, 15:31
 
Fecha de Ingreso: mayo-2013
Mensajes: 36
Antigüedad: 11 años
Puntos: 0
Respuesta: Medición de envíos

Ok,muchas gracias! pero dónde pongo el código que me has dado?
  #7 (permalink)  
Antiguo 03/05/2013, 16:23
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Medición de envíos

Cita:
Iniciado por dudamk Ver Mensaje
Ok,muchas gracias! pero dónde pongo el código que me has dado?
me refiero a que esto
Código:
 onSubmit="_gaq.push(['_trackEvent', 'Landing', 'Submit']);"
lo hagas onclick en el boton submit
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 03/05/2013, 16:42
 
Fecha de Ingreso: mayo-2013
Mensajes: 36
Antigüedad: 11 años
Puntos: 0
Respuesta: Medición de envíos

Ya lo había probado, y nada, no funciona....
  #9 (permalink)  
Antiguo 07/05/2013, 14:21
 
Fecha de Ingreso: mayo-2013
Mensajes: 36
Antigüedad: 11 años
Puntos: 0
Respuesta: Medición de envíos

Perdoname. Sé que soy muy pesada, pero estoy desesperada... necesito arreglar esto. No sé si te entendí, pero cambién el evento onsubmit por uno click y lo puse en el html, pero en vez de dentro de <form>, lo puse dentro de submit:

Código HTML:
Ver original
  1. <input type="submit" name="submit" value="Quiero saber más sobre esta oferta" class="btn" onClick="_gaq.push(['_trackEvent', 'Landing', 'Submit']);" />

Pero nada, sigue sin funcionar.

Será que debo poner el evento en alguna parte del main.js

Por favor ayuda, os lo agradecería enormemente

Etiquetas: ajax, formulario, funcion, input
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.