Witam. Mam pewien problem z JavaScriptem. Wysyłam zapytanie do PHP
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "spinuj.php?q=" + str, true);
xmlhttp.send();
Następnie odbieram wynik
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
firstspin = this.responseText;
console.log(firstspin)
}
Całość znajduje się w funkcji o następującej postaci
function showHint() {
var str="d";
var firstspin;
if (str.length == 0) {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "spinuj.php?q=" + str, true);
xmlhttp.send();
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
firstspin = this.responseText;
console.log(firstspin) // poprawna wartość
}
};
console.log(firstspin) // wartość undefined
// poza funkcją firstspin przyjmuje wartość undefined
}
Problem oznaczyłem komentarzami w kodzie wyżej. Zmienna firstspin ma poprawną wartość jedynie wewnątrz funkcji " xmlhttp.onreadystatechange = function() {", a poza nią przyjmuje wartość undefined. Od kilku dni nie potrafię odnaleźć rozwiązania tego problemu. Próbowałem już taktyki typu przypisania wartości tej funkcji np w value ukrytego inputa i odczytaniu value poza funkcją. Bardzo proszę o pomoc.