Estoy modificando unas funciones de JavaScript en una plantilla de Wordpress y he me he quedado bloqueado en el siguiente punto. Tengo una función que inspecciona los días que se ha reservado un alojamiento y los pinta según el tipo de reserva.
El código simplificado es el siguiente
function enableAllTheseDays(booking_id) {
var reserva=booking_array[unixtime1];
alert(reserva);//necesito aquí el valor
}
El código de la función que conecta con AJAX
function ajax_import_day_out(id_booking) {
var ajaxurl = ajaxcalls_vars.admin_url + 'admin-ajax.php';
var result;
var aux =jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {
'action' : 'wpprueba_get_day_out',
'booking_id' : id_booking,
},
success: function (data) {
result=data;
},
error: function (errorThrown) {}
});//end ajax
return result;
}
He probado haciendolo sincrono pero no me vale la experiencia de navegación es muy mala y también he probado con lo siguiente:
function enableAllTheseDays(booking_id) {
var auxiliar; //necesito que este valor se modifique en el interior de la función
ajax_import_day_out(reserva, function(resultadoGlobal)
{
if (resultadoGlobal!='')
{
auxiliar=1;
}
else{
auxiliar=0;
}
});
alert(auxiliar);
}
El código de la función que conecta con AJAX
function ajax_import_day_out(id_booking,my_callback) {
var ajaxurl = ajaxcalls_vars.admin_url + 'admin-ajax.php';
var resultadoGlobal="";
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {
'action' : 'wpprueba_get_day_out',
'booking_id' : id_booking,
},
success: function (data) {
resultadoGlobal=data;
my_callback(resultadoGlobal);
},
error: function (errorThrown) {}
});
return resultadoGlobal;
}
Puede ser que haya enfocado mal la resolución del código. Agradecería cualquier ayuda. Gracias.
Perdón esto que escribo aquí es una aclaración:
La cuestión es que después de la llamada a la función ajax tengo que trabajar con el valor auxiliar no solo mostrarlo con alert. Porque luego a su vez hay otra función recogerá el return de EnableAllTheseDays para trabajar también con el valor devuelto.
function enableAllTheseDays(booking_id) {
var auxiliar; //necesito que este valor se modifique en el interior de la función
ajax_import_day_out(reserva, function(resultadoGlobal)
{
if (resultadoGlobal!='')
{
auxiliar=1;
}
else{
auxiliar=0;
}
});
//trabajo con auxiliar
return auxiliar;
}
function check_in_out_enable2(in_date, out_date) {
var a = enableAllTheseDays(booking_id);
// trabajo con a
}
Es la primera vez que trabajo con AJAX y voy un poco perdido con la cadena de ejecución. Si no es posible guardarlo y trabajar con ese valor se me ocurre que posiblemte debería simplificar el código y eliminar funciones intermedias. No sé si alguna otra libría de JavaScript me ayudaría a realizar mi proposito. Agradezco todas las aportaciones. MUCHAS GRACIAS.