所以我检查了很多例子和很多教程,但由于某种未知的原因,它绝对不适合我。
我已经检查过Get JSON data from another page via JavaScript但它对我来说没有成功。
所以我想要做的是从 MySQL 获取一些信息并将其用于我在另一个 .php 上使用的 Jscript 函数,这意味着将从 mysql (connect.php) 检索到的信息获取到另一个文件 (test.php) ,但是尽管从 connect.php 中正确检索了信息,但它并未移动到其他文件。
这些是我的文件。
连接.php
<?php
mysql_connect('localhost', 'root', '') or die (mysql_error());
mysql_select_db('dbexample') or die (mysql_error());
$data = mysql_query("SELECT * FROM lugares")
or die(mysql_error());
$arr = array();
while ($obj = mysql_fetch_object($data)) {
$arr[] = array('latt' => $obj->latt,
'lng' => $obj->long,
'nombre' => $obj->nombre,
'direccion' => $obj->direccion,
);
}
echo '{"users":'.json_encode($arr).'}';
?>
测试.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
$.ajax({
type: "POST",
url:"connect.php",
async: true,
success: function(datos){
var dataJson = eval(datos);
for(var i in dataJson){
alert(dataJson[i].latt + " _ " + dataJson[i].lng + " _ " + dataJson[i].nombre);
}
},
error: function (obj, error, objError){
//avisar que ocurrió un error
}
});
</script>
</head>
<body>
<p>Super freak</p>
</body>
</html>
任何帮助将不胜感激。
编辑:我修改了 test.php 上的脚本,但感觉有些不对劲;我在这里失去了它:(
<script type="text/javascript">
$.ajax({
type: "POST",
url:"connect.php",
dataType: "JSON",
async: true,
success: function(datos){
var dataJson = $.parseJSON(datos);
$.each(dataJson, function(){
alert(dataJson.latt + "_"+ dataJson.lng);
}
},
error: function (obj, error, objError){
//avisar que ocurrió un error
}
});
</script>
谢谢!
最佳答案
有两个问题
- 您的返回类型看起来像 connect.php 中编码的 json,因此在
$.ajax
中添加dataType: JSON
在 test.php 中,您的成功数据应该是 json 解码为 Jquery,以便您可以使用
$.parseJson(data)
。请引用此[示例]:( http://www.jquerybyexample.net/2012/05/how-to-read-and-parse-json-using-jquery.html )
关于javascript - 在Javascript的另一个页面中获取JSON信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23550254/