我正在尝试将PHP脚本的输出加载到使用JavaScript和JQuery中。我正在使用的JavaScript函数使用JQuery中的$ .get函数来调用php脚本,我想在另一个部门中显示它。我写的脚本是:
<script type="text/javascript">
function on_load() {
$(document).ready(function() {
alert('here');
$.get("http://localhost/dbtest.php", function(data){
alert('here too too');
$("uname").html(data);
});
});
}
</script>
PHP脚本(dbtest.php)使用简单的echo语句:
echo "hello, world!!!";
我在这里收到第一个警报,但不是第二个。我在这里可以做错什么?
答案 0 :(得分:2)
我认为uname
是一个ID,在这种情况下你应该使用:
$("#uname").html(data);
你可以将它添加到你的php进行调试:
error_reporting(E_ALL ^ E_NOTICE);
ini_set("display_errors", 1);
还尝试从您的ajax调用中删除http://
并改为使用相对路径。
答案 1 :(得分:0)
下面的人指出选择器是错误的。确实这是一个问题,但我认为真正的问题是你没有得到第二个警报。可能你的php文件 localhost / dbtest.php 无法访问。如果在新选项卡中打开 localhost / dbtest.php ,会发生什么?
答案 2 :(得分:0)
这里有一个有效的例子:
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<div id="uname"></div>
<script>
function on_load() {
$(document).ready(function() {
alert('here');
$.get("http://localhost/dbtest.php", function(data){
alert('here too too');
$("#uname").html(data);
});
});
}
on_load();
</script>
小心same-origin-policy。加载dbtest.php的页面必须来自同一个源,除非您通过添加dbtest.php中的标头来授予其他来源。
答案 3 :(得分:0)
我认为问题是dbtest.php
文件的路径。您说第二个alert
不会显示,因此您的请求必定是错误的。
尝试将您的页面复制到dbtest.php
相同的文件夹中,使用http://localhost/yourfile.php
如果同时显示两个alert
- 框,请尝试使用打开的developer console(Chrome / IE = F12)并查看是否有错误。
答案 4 :(得分:0)
您说您正在尝试从Phonegap应用程序向本地主机发出ajax请求。 Phonegap默认情况下会阻止向其他域发出ajax请求。您必须将localhost
添加到白名单。以下是更多详细信息:http://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html
答案 5 :(得分:0)
尝试在代码中添加一些错误处理,以便更好地了解发生的情况。
<script type="text/javascript">
function on_load() {
$(document).ready(function() {
alert('here');
$.get("http://localhost/dbtest.php", function(data){
alert('here too too');
$("uname").html(data);
}).fail(function () {
alert("failed");
});
});
}
</script>