Estoy tratando de obtener la respuesta de ajax y atribuirla a una variable (digamos _has_weekend_hollidays) de la siguiente manera:
Llamada JS:
_has_weekend_hollidays = checkWeekendHollidays( _i ); console.log ( checkWeekendHollidays( _i ) );Llamada AJAX
$.ajax({ url: "./directory/ajax_check_weekend_hollidays.php", type: "POST", data: { start_date: _date1, final_date: _date2 } }).done(function (_result) { return ( _first_weekday == 0 || _last_weekday_id >= 6 || _result!="0" ); }).fail(function (_result) { console.log("ERROR:" + _resultado); });El _resultado de AJAX está bien, pero la devolución no funciona.
Así que console.log muestra undefined .
¿Algunas ideas?
¡Gracias por adelantado!
Si necesita que el resultado continúe, haga su trabajo después de la devolución de llamada de Ajax.
No está undefined porque no hay devolución de variables por parte de Ajax:
{ url: "./directory/ajax_check_weekend_hollidays.php", type: "POST", data: { start_date: _date1, final_date: _date2 } }Esta línea:
return ( _first_weekday == 0 || _last_weekday_id >= 6 || _result!="0" );
no se ejecuta hasta que Ajax esté "Terminado".
Si desea registrar los datos de devolución, use console.log en la función de devolución.
Ejemplo:
$.ajax({ url: "./directory/ajax_check_weekend_hollidays.php", type: "POST", data: { start_date: _date1, final_date: _date2 } }).done(function (_result) { console.log(_first_weekday == 0 || _last_weekday_id >= 6 || _result!="0"); //do something else here too }).fail(function (_result) { console.log("ERROR:" + _resultado); });