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

1voto

Enviar variables jquery por mail

Buenos dias necesitaria una mano en enviar variables jquery por mail, el codigo que tengo es:

<script type="text/javascript">

  $(function () {
    var goToCartIcon = function($addTocartBtn){
    var $cartIcon = $(".my-cart-icon");
    var $image = $('<img width="30px" height="30px" src="' + $addTocartBtn.data("image") + '">').css({"position": "fixed", "z-index": "999"});
    $addTocartBtn.prepend($image);
    var position = $cartIcon.position();
    $image.animate({
      top: position.top,
      right: position.right
    }, 500 , "linear", function() {
      $image.remove();
    });
  }

  $('.my-cart-btn').myCart({
    classCartIcon: 'my-cart-icon',
    classCartBadge: 'my-cart-badge',
    affixCartIcon: true,
    checkoutCart: function(products, totalPrice, totalQuantity) {
        var checkoutString = "Total Price: " + totalPrice + "\nTotal Quantity: " + totalQuantity;
        checkoutString += "\n\n Codigo \t Producto \t Precio \t Cantidad";
        $.each(products, function(){
          checkoutString += ("\n " + this.id + " \t " + this.name +  + " \t " + this.price + " \t " + this.quantity);
        });
        alert(checkoutString)
        console.log("checking out", products, totalPrice, totalQuantity);
      },
    clickOnAddToCart: function($addTocart){
      goToCartIcon($addTocart);
    },
    getDiscountPrice: function(products) {
      var total = 0;
      $.each(products, function(){
        total = this.quantity * this.price;
      });
      return total;
    }
  });

});
  </script>

las variables que tengo que enviar son products, totalPrice, totalQuantity, si pudieran darme una mano se lo agradeceria!

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola @matti,

en esta otra pregunta tuya, que es igual a esta, tratamos el tema de por qué no es posible que nada que tengas en una variable JavaScript puede ser enviado por mail, porque JavaScript ejecutándose en el navegador, no puede enviar un e-mail.

También en esa respuesta están los mecanismos para hacerlo.

Si tu pregunta es cómo enviar datos a un script en el servidor por GET, por POST o asíncrónicamente por AJAX, o si es cómo recibir el valor para enviar un mail, o cualquier otra cosa, por facor, preguntá esa otra cosa!

Saludos cordiales

0voto

Leonardo-Tadei comentado

@matti, me confunde tu relato de lo que pasa: al principio decís que si en vez de armar la variable con el contenido enviás "hola" el mail sí se envía, para lo cual el archivo PHP tiene que ejecutarse. Más adelante decís que obtenés un error de memoria insuficiente, para lo que el archivo PHP también tiene que ejecutarse.

Ahora decís que el archivo PHP nunca llega a ejecutarse.

Yo sigo sin saber si no se ejecuta nada o solo no entra en el WHILE. Tampoco nos envías un var_dump() para ve el contenido de las variables. Sin más información coherente y precisa, yo no puedo avanzar más :-(

0voto

matti comentado

Es así el archivo se ejecuta correctamente es decir se envía el mail si ingreso web localhost/mail.php pero si intento con el botón no funciona, el problema está que en cuanto mandó La información vía Ajax solo aparece el cartel de funciono que se muestra al enviar exitosamente La información vía Ajax ahora para mí no ejecuta nunca el archivo PHP porque no aparece ningún cartel de mensaje enviado o mensaje no enviado, disculpa soy medio malo para explicar las cosas, no sé si se entiendo mejor ahora

0voto

Leonardo-Tadei comentado

En el código que tenés en esta pregunta, en ningún momento aparece la parte JS que envía los datos a mail.php.

Según lo que decís ahora, tu problema no es que el mail no se envía, sino que no estás haciendo la llamada a mail.php

Llegados a este punto, es irrelevante lo que haga mail.php, porque el problema es que nunca se lo llama, así que poner en el título de la pregunta que el problema es mandar un mail, al menos a mi, resulta muy confuso, porque estamos mirando para un lado cuando el problema está en otro.

Llegados a este punto @matti y después de este larguísimo intercambio, creo que tenés que lo mejor sería que cierres esta pregunta y arranques de nuevo preguntando cómo llamar con ajax a un script PHP? e indicar en el texto que le querés pasar unos valores, o en caso de que el llamado sea directo y que al enviar el pedido se recargue la página, preguntar cómo llamar desde JavaScript a un script PHP?

Fijate que son dos escenarios distintos, y la pregunta y la respuesta varía según de qué forma lo necesites (que hasta ahora no conocemos exactamente)

Saludos cordiales

0voto

matti comentado

 var data={ productos: products, 
                   total: totalPrice,
                   cantidad: totalQuantity};

        $.ajax({
    data : data,
    url: "mail.php",
    type: 'POST',
    success: function() {
        alert('Funciona');
         //window.location="mail.php";
    },
    error: function() {
        alert( "Ha ocurrido un error" );
    }
    });

Esa es la parte que envio por metodo post de ajax las variable a el archivo mail.php.
Decime si eso te sirve para darme una mano o abro otra pregunta directamente. Saludos

0voto

Leonardo-Tadei comentado

Bien, esta es la parte en dónde envías por el método POST a mail.php... y cómo podemos saber de dónde salen los valores que van en data ? Los alert() se ven?

Con el largo que tiene ya todo esto, te será mejor empezarlo de nuevo. Partí de una pregunta que tenga sentido (la que inicia esto no lo tiene) y poné el código relevante para que se pueda ver de dónde salen los valores, qué contenido tienen las variables y por dónde ves que pasa tu código (por ejemplo, todavía no sabemos si te aparece el alert() del success, el del error o ninguno.

Nosotros no podemos saber nada más que lo que nos digas! No asumas que sabemos cosas de tu código cuando no lo ponés para que lo veamos! Por ejemplo, en ningún lugar aparece la parte del código que llama a la última porción de JS que pusiste, así que con esto ni siquiera sabemos si alguien intenta ejecutarlo.

Saludos cordiales

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