2017-02-23 29 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 - 我会添加什么引用,以及如何在

相关问题