Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Obtener valor input y enviar mediante post

Estas en el tema de Obtener valor input y enviar mediante post en el foro de Javascript en Foros del Web. Buenas! Resumo, estoy creando un formulario con dos botones. Y la idea es que al presionar el primer botón "UNO", obtenga el valor que hay ...
  #1 (permalink)  
Antiguo 23/06/2017, 08:32
 
Fecha de Ingreso: febrero-2012
Ubicación: Cancun
Mensajes: 79
Antigüedad: 12 años, 1 mes
Puntos: 0
Obtener valor input y enviar mediante post

Buenas! Resumo, estoy creando un formulario con dos botones. Y la idea es que al presionar el primer botón "UNO", obtenga el valor que hay en el campo "importe" y lo envie mediante post a "ejemplo.php". Ya de ahí realizo una consulta y muestro el resultado en "salida". Una vez hecho esto, si ejecuto el sumbit del formulario.

Código HTML:
Ver original
  1. <form action="kiosk.php" method="post" class="form" id="form1"><?php      
  2.  
  3.        <input type="text" name="importe" id="comment" placeholder="IMPORTE DE CARGA" required />
  4.  
  5.          <button class = "enviar" name="boton" id="button-blue" value = 1>UNO</button>
  6.         <input type="submit" value="IMPRIMIR COMPROBANTE" id="button-blue"/>
  7. </form>
  8.  
  9. <div id = "salida"></div>
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.  
  3.     var botones = document.getElementsByClassName("enviar"),
  4.     total = botones.length,
  5.     salida = document.getElementById("salida");
  6.  
  7. for (i = 0; i < total; i++) {
  8.     botones[i].addEventListener("click", function(){
  9.         var ajax = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP") || new ActiveXObject("Msxml2.XMLHTTP");
  10.  
  11.         ajax.open("POST", "ejemplo.php", true);
  12.         ajax.onreadystatechange = function(){
  13.             if (ajax.readyState == 4) {
  14.                 switch (ajax.status) {
  15.                     case 200:
  16.                         salida.innerHTML = ajax.responseText;    
  17.                     break;
  18.  
  19.                     case 404:
  20.                         salida.innerHTML = "La dirección brindada no existe";
  21.                     break;
  22.  
  23.                     default:
  24.                         salida.innerHTML = ajax.status;
  25.                     break;
  26.                 }
  27.             }    
  28.         };
  29.  
  30.         ajax.send(this.value);
  31.     }, false);
  32. }        
  33. </script>
  #2 (permalink)  
Antiguo 23/06/2017, 12:10
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Obtener valor input y enviar mediante post

Según veo, quiere enviar un mismo dato a dos archivos php diferentes ?? a ejemplo.php y a kiosk.php

Y si prueba las nuevas funciones de HTML para tener un input vinculado a un formulario diferente al que esta inmerso ??
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #3 (permalink)  
Antiguo 23/06/2017, 12:12
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Obtener valor input y enviar mediante post

Para realizar una petición asíncrona mediante el método POST, tienes que establecer las cabeceras respectivas:
Código Javascript:
Ver original
  1. ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

Por otro lado, si deseas que se envíe mediante AJAX el valor en cuestión cuando pulses el primer botón, solo tienes que asociar el evento click al mismo, cancelar el evento submit el cual se dispara cuando se pulsa un botón contenido en un formulario (utilizando el método .preventDefault), y, finalmente, realizar la petición asíncrona:
Código Javascript:
Ver original
  1. document.querySelector("#button-blue").addEventListener("click", function(event){
  2.     event.preventDefault();
  3.  
  4.     //Aquí realizas la petición asíncrona (AJAX)
  5. }, false);

Obviamente vas a tener que dejar de usar ese bucle para que esto funcione o se generará un conflicto.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 23/06/2017, 12:14
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Obtener valor input y enviar mediante post

An HTML form with two submit buttons, with different actions:
Código HTML:
Ver original
  1. <form action="/action_page.php">
  2.   First name: <input type="text" name="fname"><br>
  3.   Last name: <input type="text" name="lname"><br>
  4.   <input type="submit" value="Submit"><br>
  5.   <input type="submit" formaction="/action_page2.php"
  6.  value="Submit as admin">
  7. </form>

https://www.w3schools.com/html/html_form_attributes.asp
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #5 (permalink)  
Antiguo 29/06/2017, 05:58
 
Fecha de Ingreso: febrero-2012
Ubicación: Cancun
Mensajes: 79
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Obtener valor input y enviar mediante post

Gracias por sus respuestas. Me sirven las dos. Saludos

Etiquetas: form, html, input, mediante, php, post, text, valor, vez
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 06:11.