2015-04-05 4 views
0

Я пытаюсь назначить входное значение переменной, которую я получил с помощью JSON/PHP из базы данных. Каждый раз, когда я иду на вывод, я получаю пустое/нулевое значение.присвоение входного значения переменной

Я создал глобальную переменную в верхней части файла JavaScript:

var theAge=0; 


function startApplication(){ 
    getData(); 
    getAge(); 
    alert(theAge); 
} 



function getData(){ 
$.getJSON('http://www.myphpfile.co.uk/myfile.php', function(data) { 
        $.each(data, function(key, val) { 
          $("#userAge").val(val.age); 
        }); 
      }); 
} 



function getAge(){ 
    theAge = document.getElementById('#userAge').value; 
} 

Так я создаю переменную theAge, захватывая данные из базы данных и отображения его в поле ввода, затем пытается возьмите входное значение с помощью функции getAge, чтобы затем предупредить его, чтобы проверить его работу. Я просто получаю пустую коробку. Кто-нибудь может видеть какие-либо ошибки? Благодарю.

+1

'document.getElementById ('# userAge')' удалить хэштегом. –

+0

Или, если вы хотите использовать jQuery '$ (" # userAge "). Val()' –

ответ

2

$.getJSON - это асинхронный вызов удаленного URL-адреса, что означает, что сценарий продолжается по этой линии во время получения ответа.

К тому времени ваш сценарий попадает в getAge(); и alert(theAge);, ответ еще не вернулся, поэтому theAge все еще 0.

Все, что вы хотите сделать с значением, которое вы получаете от удаленного вызова должно быть передано в качестве функции обратного вызова. Вы уже передаете функцию там (function(data) { $.each...) - остальная часть того, что вам нужно сделать с этим ответом (например, getAge() и предупреждение о значении), также нужно обрабатывать там.

обновление

Присвоить значение и предупредит его внутри обратного вызова:

$.getJSON('http://www.myphpfile.co.uk/myfile.php', function(data) { 
    $.each(data, function(key, val) { 
     $("#userAge").val(val.age); 
    }); 
    theAge = document.getElementById('userAge').value; 
    alert(theAge); 
}); 
+0

Спасибо за ваш ответ. Как вы могли бы предложить мне присвоить значение userAge из вызова глобальной переменной theAge? Извинения, что я не делал Javascript очень долго. – jord49

+1

Посмотрите мое обновление только сейчас. – Faust

+0

Это хорошо, но хэш-тег следует удалить из вызова 'getElementById'. Или просто '$ ('# userAge'). Val()'. –

Смежные вопросы