Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: jhonedal en 23 Septiembre 2019, 05:48 am



Título: Generador link whatsapp
Publicado por: jhonedal en 23 Septiembre 2019, 05:48 am
Hola amigos, me podrian ayudar con esto:

quiero crear un código HTML para introducir en mi pagina para generar link que vayan directo a whatsapp, no se mucho de programación y solo tengo esto hasta el momento:

Código
  1. <form target="mainFrame" method="get" action="https://api.whatsapp.com/send?phone=573100000&text"="target="_blank"> <input type="number" name="phone" value=""> <input type="text" name="text" value=""> <input type="submit" name="" value="Buscar"> </form>

El problema es que cuando el texto ingresado contiene mas de una frase se rellena con +

Esta quedando así: https://api.whatsapp.com/send?phone=17862013838&text=Hola+quiero+info

y para que funcione debería quedar así:

https://api.whatsapp.com/send?phone=17862013838&text=Hola%20quiero%20info

Lo otro es que me gustaría es que antes de redireccionar me mostrara el texto, alguna sugerencia


Mod: Obligatorio el uso de etiquetas GeSHi para codigos.


Título: Re: Generador link whatsapp
Publicado por: #!drvy en 23 Septiembre 2019, 11:16 am
Tienes un par de problemas en tu código.
- Usas dos veces el mismo atributo target.
- Tienes un = y una comilla doble de más justo después del action la cual puede invalidarlo.

Dicho esto, lamentablemente así es como se comporta el envío de formulario GET. Tendrás que utilizar un lenguaje capaz de cambiar el encoding para arreglarlo.

Por ejemplo, puedes utilizar javascript:

Código
  1. <form name="formWhatsapp" method="get" action="https://api.whatsapp.com/send">
  2.    <input type="number" name="phone" value="">
  3.    <input type="text" name="text" value="">
  4.    <input type="submit" name="" value="Buscar">
  5. </form>
  6.  
  7. <script>
  8.   document.forms['formWhatsapp'].addEventListener('submit', function(event){
  9.       event.preventDefault();
  10.  
  11.       var phone = encodeURIComponent(this.elements['phone'].value);
  12.       var text = encodeURIComponent(this.elements['text'].value);
  13.       var url = this.action + '?phone=' + phone + '&text=' + text;
  14.  
  15.       window.open(url, '_blank');
  16.    });
  17. </script>


Lo que hace es escuchar cuando se envía el formulario, pararlo, recoger y codificar manualmente los dos campos (phone y text), construir una URL según el action del formulario y abrir dicha URL en una nueva ventana/pestaña.

https://developer.mozilla.org/es/docs/Web/javascript/Referencia/Objetos_globales/encodeURIComponent

Saludos