Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Enviar el valor de un select por AJAX (con jQuery)

Estas en el tema de Enviar el valor de un select por AJAX (con jQuery) en el foro de Jquery en Foros del Web. Hola tengo una especie de calculadora que funciona por AJAX, y por ahora sólo hace sumas. Las otras operaciones las tengo configuradas en el PHP, ...
  #1 (permalink)  
Antiguo 05/06/2016, 13:25
 
Fecha de Ingreso: febrero-2016
Mensajes: 7
Antigüedad: 8 años, 2 meses
Puntos: 0
Enviar el valor de un select por AJAX (con jQuery)

Hola tengo una especie de calculadora que funciona por AJAX, y por ahora sólo hace sumas. Las otras operaciones las tengo configuradas en el PHP, pero no se me envía el valor de un select, en el que se puede seleccionar la operación. Cómo la suma es el último else del PHP, es lo único que procesa. ¿Hay alguna manera de hacerlo? Aquí dejo parte de mi código PHP y HTML:

Código de la página HTML:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.     <head>
  3.         <meta charset="UTF-8" />
  4.         <title>Calculadora sencilla de AJAX</title>
  5.         <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
  6.         <script>
  7. function realizaProceso(valorCaja1, valorCaja2, operacion){
  8.         var parametros = {
  9.                 "valorCaja1" : valorCaja1,
  10.                 "valorCaja2" : valorCaja2,
  11.                 "operacion" : operacion
  12.         };
  13.         $.ajax({
  14.                 data:  parametros,
  15.                 url:   'suma.php',
  16.                 type:  'post',
  17.                 beforeSend: function () {
  18.                         $("#resultado").html("Procesando...");
  19.                 },
  20.                 success:  function (response) {
  21.                         $("#resultado").html(response);
  22.                 }
  23.         });
  24. }
  25.     </head>
  26.     <body>
  27.         <form action="suma.php" method="post">
  28.             Introduce valor 1
  29.             <input type="number" name="valorCaja1" id="valor1" value="0" /><br />
  30.             Elige la operación:
  31.             <select id="operacion" name="operacion">
  32.                 <option value="suma">+</option>
  33.                 <option value="resta">-</option>
  34.             </select><br />
  35.             Introduce valor 2
  36.             <input type="number" name="valorCaja2" id="valor2" value="0" /><br />
  37.             <input type="submit" onclick="realizaProceso($('#valor1').val(), $('#valor2').val(), $('#operacion').val());return false;" value="Calcular"/>
  38.         </form>
  39.         Resultado: <span id="resultado"></span>
  40.     </body>
  41. </html>

Extracto del Código del archivo PHP que lo procesa (suma.php) (sólo aparecen las dos primeras operaciones ya que con dos que sepa ya podré hacer las demás):

Código PHP:
Ver original
  1. <?php
  2.  $operacion = $_POST['operacion']
  3.  
  4. $resultado = $_POST['valorCaja1'] + $_POST['valorCaja2'];
  5.  
  6. $resultadoresta = $_POST['valorCaja1'] - $_POST['valorCaja2'];
  7.  
  8. if ($operacion == 'resta') {
  9.     echo $resultadoresta;
  10. } else {
  11.     echo $resultado;
  12. }
  13. ?>
  #2 (permalink)  
Antiguo 05/06/2016, 13:45
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Enviar el valor de un select por AJAX (con jQuery)

Hola. prueba asi:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.     <meta charset="UTF-8" />
  3.     <title>Calculadora sencilla de AJAX</title>
  4.     <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
  5.     <script>
  6.         function realizaProceso(valorCaja1, valorCaja2, operacion){
  7.             var parametros = {
  8.                 "valorCaja1" : valorCaja1,
  9.                 "valorCaja2" : valorCaja2,
  10.                 "operacion" : operacion
  11.             };
  12.             $.ajax({
  13.                 data:  parametros,
  14.                 url:   'suma.php',
  15.                 type:  'post',
  16.                 beforeSend: function () {
  17.                     $("#resultado").html("Procesando...");
  18.                 },
  19.                 success:  function (response) {
  20.                     $("#resultado").html(response);
  21.                 }
  22.             });
  23.         };
  24.     </script>
  25. </head>
  26.  
  27.     Introduce valor 1
  28.     <input type="number" name="valorCaja1" id="valor1" value="0" /><br />
  29.     Elige la operación:
  30.     <select id="operacion" name="operacion">
  31.         <option value="suma">+</option>
  32.         <option value="resta">-</option>
  33.     </select><br />
  34.     Introduce valor 2
  35.     <input type="number" name="valorCaja2" id="valor2" value="0" /><br />
  36.     <input type="button" onclick="realizaProceso($('#valor1').val(), $('#valor2').val(), $('#operacion').val());return false;" value="Calcular"/>
  37.  
  38. Resultado: <span id="resultado"></span>
  39. </body>
  40. </html>

Código PHP:
Ver original
  1. <?php
  2. $operacion = $_POST['operacion'];
  3.  
  4. if ($operacion == 'resta') {
  5.    $resultadoresta = $_POST['valorCaja1'] - $_POST['valorCaja2'];
  6.     echo $resultadoresta;
  7. } else {
  8.     $resultado = $_POST['valorCaja1'] + $_POST['valorCaja2'];
  9.     echo $resultado;
  10. }
  11. ?>

O en luga de if y else podrias usar switch:
Código PHP:
Ver original
  1. <?php
  2.     $operacion = $_POST['operacion'];
  3.  
  4.     switch ($operacion){
  5.            case "resta" : echo $_POST['valorCaja1'] - $_POST['valorCaja2']; break;
  6.            case "suma" : echo $_POST['valorCaja1'] + $_POST['valorCaja2']; break;
  7.     }
  8. ?>
Saludos

Última edición por kip13; 05/06/2016 a las 13:59
  #3 (permalink)  
Antiguo 10/06/2016, 11:46
 
Fecha de Ingreso: febrero-2016
Mensajes: 7
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Enviar el valor de un select por AJAX (con jQuery)

¡Muchas gracias!
Cambie el código por el "case", al principio se generó un error en el servidor y se borró el contenido del archivo, pero al reescribirlo funcionó correctamente. Gracias.

Etiquetas: ajax, select, valor
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 12:33.