Se puede utilizar condicional if dentro de success en Ajax?

publicado por: Anonymous

Se puede utilizar una condicional if para validar el resultado de una variable?, algo asi como:

$("#update").submit(function(e){
            e.preventDefault();
            $.ajax({
                url: "ruta/al/archivo/uploadFac.php",
                type: "POST",
                data:  new FormData(this),
                contentType: false,
                cache: false,
                processData: false,
                success: function(data){
                    if(var != 0){
                    $('#upload').modal('hide');
                    $('#Fac').modal('hide');
                    }else{
                        alert("ERROR");
                    }
                },
                error: function(data){
                    console.log(data)
                }
            });
          });
        });

Donde la variable “var” es una variable que obtengo del script uploadFac.php con el cual se hizo la peticion, se puede hacer eso??

solución

La estructura de AJAX es un objeto, esto nos da mucha flexibilidad para hacer y deshacer. A lo que me refiero es que, el nodo success almacena una función anónima, y se comporta como cualquier otra, puedes meter cualquier tipo de código dentro. IF, WHILE, FOR, Incluso llamar otro AJAX (Para esto sería mejor el uso de promises y/o el método .when de Jquery)

Te dejo otra forma de cómo puedes armar tu AJAX

_x000D_

_x000D_

$(function(){_x000D_
  _x000D_
  var llamarAjax = function(){_x000D_
    //Aquí declaras el objeto que pasarás como parámetro_x000D_
    var ajax = {};_x000D_
    ajax.url = 'mi_url.py';_x000D_
    ajax.method = 'POST';_x000D_
    ajax.data = {_x000D_
      dato1: 'dato1',_x000D_
      dato2: 'dato2'};_x000D_
    ajax.success = function(respuesta){_x000D_
      console.log(respuesta);_x000D_
      //Inclusive puedes volver a invocar otro ajax_x000D_
      //llamarAjax();_x000D_
    };_x000D_
    ajax.error = function(xhr,err){_x000D_
     //Aquí mandará error por que no está permitido el uso de AJAX en snippets_x000D_
      console.log(err);_x000D_
    };_x000D_
    _x000D_
    //Aquí pasas el objeto AJAX_x000D_
    $.ajax(ajax);_x000D_
  }_x000D_
  _x000D_
  $(document).on('click','#foo',function(){_x000D_
    llamarAjax();_x000D_
  });_x000D_
_x000D_
_x000D_
});

_x000D_

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>_x000D_
_x000D_
<input type="button" value="Llamada!" id="foo">

_x000D_

_x000D_

_x000D_

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *