0

Hola lo que quiero hacer es pasar el valor de una variable dentro de la función de retorno de Ajax este es el código:

function slider(response) {
    //console.log(response);
    if (response != 'error') {
        var info = JSON.parse(response);
        console.log(info);
        var slider_id = info.id;
        return slider_id;
    }
}

$('.slideshow').mouseenter(function slan(e) {
    var id = $(this).attr('slider');
    var slin = $(this).attr('id');
    var action = 'Imagenes';

    $.ajax({
        url: 'ajax.php',
        type: 'POST',
        async:true,
        data: {action:action,id:id},
        success: slider,
        error: function(error) {
            console.log(error);
        },
    });
}); 

var slider_id2 = 3;

quiero pasar el valor que obtengo en slider_id a slider_id2 que esta fuera de la función slider pero no logro hacer lo, y e llamado la función slider pero me dice que esta indefinida y no pasa los datos a la variable slider_id2 también e intentado window.slider_id pero al hacer una alert(window.slider_id); pasa nada que puedo hacer.

Israel-ICM
  • 3,258
  • 17
  • 15
  • 25
  • La ejecución es asíncrona y, por tanto, no tienes los datos cuando termina la ejecución de slan, sino cuando la llamada AJAX se completa. – Pablo Lozano Feb 23 '21 at 17:43

1 Answers1

0

Una manera de hacerlo es haciendo un input type hidden, ponerle el valor de la variable ahí con documentgetelementbyid("id_input_hidden").value = nombre_variable, luego definir la segunda variable y ponerla igual a documentgetelementbyid("id_input_hidden").value

Algo así:

function slider(response) {

 documentgetelementbyid("id_input_hidden").value = nombre_variable
}
nombre_variable2 = documentgetelementbyid("id_input_hidden").value
Shredder
  • 195
  • 2
  • 16