2015-04-05 84 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')'刪除#標籤。 – 2015-04-05 03:35:03

+0

或者,如果您想使用jQuery'$(「#userAge」)。val()' – 2015-04-05 03:36:47

回答

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 2015-04-05 03:44:47

+1

剛纔看到我的更新。 – Faust 2015-04-05 03:49:49

+0

這很好,但是應該從'getElementById'調用中刪除哈希標記。或者簡單地執行'$('#userAge')。val()'。 – 2015-04-05 03:52:14