Nie jestem specjalistą od JavaScript i widziałem, że szukałem tego przez długi czas w Internecie.JavaScript pobiera zmienną z funkcji
Mam problem z uzyskaniem zmiennej z innej funkcji. Mój kod wygląda tak:
var variabeltje;
$.post('js/ajax/handle_time.php', {'time': $(this).find('input').val()},
function(data) {
alert(data);
variabeltje=data;
}
);
alert(window.variabeltje);
Zmienna variabeltje
musi dostać informację z danymi. Kiedy ustawiam alarm poniżej variabeltje=data
, działa, ale potrzebuję zmiennej danych po funkcji.
Edit:
Zmieniłem go do tego, co ludzie mówili, teraz mam to:
var XHR = $.post('js/ajax/handle_time.php', {time: $(this).find('input').val()});
XHR.done(function(data) {
console.log(data);
getData(data);
});
function getData(data) {
if(data == 'true') {
alert(data);
$(this).unbind('keypress');
$(this).html($(this).find('input').val());
}
}
Ale teraz $ (this) nie przechodzi do funkcji. Jak mogę to rozwiązać?
Powodem jest podana poniżej w odpowiedziach, ale żadne rozwiązanie, aby to, co staramy się robić. To dlatego, że trudno jest to zrobić bez większego wyobrażenia o tym, co próbujesz zrobić. Na przykład dobrym sposobem rozwiązania problemu w tym kodzie jest przeniesienie alertu o dwie linie, ale to może nie zadziałać w twoim rzeczywistym kodzie. – Jasper
Dzięki za odpowiedź. W pliku handle_time.php sprawdzam poprawność i zostanie on edytowany w bazie danych. Jeśli jest edytowany z powodzeniem, zwróci true; A variabeltje musi uzyskać wartość true. Następnie po alarmie chcę sprawdzić, czy to prawda, czy nie i wyświetlić rzeczy, czy nie. – Marnix
No cóż, przypuszczam, że nie powinieneś próbować tego robić poniżej wywołania '$ .post()' (które jest zaraz po wysłaniu żądania *) * Zamiast tego powinieneś to zrobić w funkcji, którą przekazujesz do ' $ .post() ', który zostanie wykonany po zakończeniu żądania. – Jasper