好的,所以在搜索 Stack Overflow 的答案后,我找到了两个线程并尝试了它们,但它们对我不起作用。
我的问题是我想为映射实用程序处理来自数据库的一些数据,但是在调用 Jquery 方法 $.getJSON() 后 JSON 的某些元素消失了。我可以将它们创建为 'ul' 元素就好了。我无法用我尝试过的任何方法让他们推送到数组数组。我在这里问是因为我很好奇我做错了什么。我曾认为我可能必须遍历 DOM 才能获取元素一次填充,但这对我来说似乎很愚蠢,我想知道是否有更简单的方法。我是 javascript 和 Jquery 的新手,但了解编程概念。
我使用的概念是这样的:
我有一个带有值的 SQL Server 2008 数据库:
PlaceID PlaceName 1 Place 1 2 Place 2 3 Place 3 4 Place 4
我可以使用“sqlsrv”驱动程序创建一个 PHP 脚本来获取值并输出
echo json_encode($data);
我可以确认我可以从本地 IIS 中的这个 PHP 脚本返回数据。(您必须对 IIS 进行所有特殊的 jerry 装配以使其像 PHP)
我可以调用 php 脚本并使用 JQuery 库 2.0.3.js 显示它的数据
$.getJSON('SqlTalk.php')
我可以用它填充 HTML 中的元素,但我无法获得一个数组数组以供其他对象重用,这是我真正想要的。最终,我想制作一个完整的 javascript,它只从 PHP 脚本中获取一组数组,然后引用该 javascript 嵌入或作为用于映射的引用。但是,从我的阅读来看,$.getJSON 似乎是异步的,但即使是我看到的方法也不适用于我尝试“推送”到现有数组。可能是我在混合 Jquery 和传统 javascript 时也误解了语法。
完成瓶颈所在的 HTML 代码。基本上 PHP 将返回数据,如第 1 步所示,但作为 JSON 对象除外。这是一个简单的例子,让我首先超越概念证明。我可以显式推送到数组,并且可以很好地生成 ul 元素的子项。无论我尝试从我读过的内容中重新格式化 getJSON 方法,我都无法从“getJSON”推送项目。
<html>
<head>
<script type='text/javascript' src='JQuery 2.0.3.js'></script>
</head>
<body>
<ul></ul>
<script>
test = [
{
PlaceID: "1",
PlaceName: "Somewhere"
}
]
test.push({PlaceID: "2", PlaceName: "SomewhereElse"});
function getArray() {
return $.getJSON('SqlTalk.php')
}
getArray().done(function(json){
$.each(json, function(key, val){
//test[key] = { PlaceID: val.PlaceID}; // doesn't work
test.push({PlaceID: val.PlaceID, PlaceName: val.PlaceName}); // also does not work, can't push.
$('ul').append('<li id="' + key + '">' + val.PlaceName + '</li>');
});
});
alert(test.length);
// So I get my output to the 'ul' element fine, but my test array never gets the values.
//I have tried what others have stated and it does not work.
</script>
</body>
</html>