2017-02-23 28 views
0

我打電話給查詢我的數據庫並返回結果的php文件。我已經驗證了php文件能夠根據需要準確返回數據,但我的調用頁面並未從JavaScript更新。JavaScript不返回數據但沒有錯誤

我需要在下面的語法中更改哪些內容,以便返回頁面上的值?

<script type="text/javascript"> 
function boostion() 
{ 
var xhr; 
if (window.XMLHttpRequest) { 
    xhr = new XMLHttpRequest(); 
} else if (window.ActiveXObject) { 
    xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
} 
    xhr.open("GET", "QueryDB.php", true); 
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");     
    xhr.onreadystatechange = display_data; 
    function display_data() { 
    if (xhr.readyState == 4) { 
     if (xhr.status == 200) {  
     document.getElementById("data").innerHTML = xhr.responseText; 
     } else { 
     alert('There was a problem with the request.'); 
     } 
    } 
    } 
} 
</script> 

編輯
我也打開Chrome開發選項,並檢查了控制檯,並且沒有顯示錯誤或問題,一切都成功了!

編輯2
我試着用下面的JQuery的方法,並使用了此語法 - 但我得到的錯誤

Uncaught TypeError: $(...).load is not a function

語法:

<script src="https://code.jquery.com/jquery-3.1.1.slim.js" 
    integrity="sha256-5i/mQ300M779N2OVDrl16lbohwXNUdzL/R2aVUXyXWA=" 
    crossorigin="anonymous" type="text/javascript"></script> 
<script type="text/javascript"> 
$(window).load(function(){ 
$.get("QueryDB.php", function(data, status){ 
document.getElementById("data").innerHTML = data; 
}); 
}); 
</script> 

編輯3
這是我的php語法,它運行我想要返回的sql語法和回顯結果JavaScript的

<?php 
    $option = array(); 

    $option['driver'] = 'mssql'; 
    $option['host']  = 'host'; 
    $option['user']  = 'user';  
    $option['password'] = 'password'; 
    $option['database'] = 'database';  
    $option['prefix'] = '';    

    $db = JDatabase::getInstance($option); 
    $result = $db->getQuery(true); 
    $result->select($db->quoteName(array('trackandfieldresults'))); 
    $result->from($db->quoteName('[TrackData]')); 
    $db->setQuery($result); 
    $row = $db->loadRowList(); 
    echo $row['0'] 
?> 
+0

如果你沒有意識到這一點 –

回答

0

使用xhr.send(); 如果是GET要求,必須應用的查詢字符串在xhr.open和你沒有設置Content-type:application/x-www-form-urlencoded

+0

不要使用jquery這是一個GET請求,因爲我按下一個按鈕,PHP是查詢我的數據庫並返回數據。我會看看xhr.send() –

+0

除了'send()'方法外,別忘了把函數放在外面哪個更好 –

+0

發送數據需要'xhr.send' –

0

我使用JQuery更快的方法。

$(window).load(function(){ 
    $.get("QueryDB.php", function(data, status){ 
    //Do whatever you want here 
    }); 
}); 

這應該做的工作。首先,腳本應該放在HTML結尾體標籤前面。然後你打開另一個文件並在其中寫入你的代碼。 JQUERY沒有腳本標記。 Sp爲腳本創建外部JavaScript文件。不需要腳本標籤。現在使用這種格式。

$(window).on('load', function(e){ 
e.preventDefault(); 
var dat = //the content you are trying to load 
$.get('middleware.php', dat, function(data){ 
$('#selector').html(data) 
}); 

}) 
+0

* Emberassment *我不知道如何使用JQuery - 我會添加什麼引用,以及如何在

相關問題