所以我检查了相当多的例子和相当多的教程,但由于某种未知的原因,它绝对不适合我。
我已经检查了通过JavaScript从另一个页面获取JSON数据,它没有为我工作。
所以我想做的是从MySQL中获取一些信息,并将其用于我在另一个。php上使用的Jscript函数,这意味着从MySQL (connect.php)检索到另一个文件(test.php)的信息,但是,尽管信息正确地从connect.php检索到,它并没有移动到其他文件。
这些是我的文件。
connect.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).'}';
?>
test.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>
谢谢!
有两个问题
- 你的返回类型看起来像json编码在connect.php所以添加
dataType: JSON
在$.ajax
-
在test.php你的成功数据应该json解码到Jquery,这样你就可以使用
$.parseJson(data)
。请参考这个[示例]:(http://www.jquerybyexample.net/2012/05/how-to-read-and-parse-json-using-jquery.html)
尝试将alert(dataJson[i].latt
更改为alert(dataJson[i].users.latt
我可能在这一点上是错的,但是看起来你从来没有进入到你硬编码到响应中的用户项。
我看到问题了美元。Ajax就是这样的jquery元素首先包含jquery.js文件,然后添加文档。在这里使用$.ajax
下面的例子对我有效这是您的test.php
$(document).ready(function(){
//start ajax request
$.ajax({
url: "test.php",
//force to handle it as text
dataType: "text",
success: function(data) {
//data downloaded so we call parseJSON function
//and pass downloaded data
var jsonData = $.parseJSON(data);
//now json variable contains data in json format
alert(jsonData.firstName);//access first array
alert(jsonData.series[0]);//access second array elements
}
});
});
你的connect.php应该返回json编码数组:
$php_array = array('firstName'=>'Walter','lastName'=>'White', 'series'=>array('episode1','episode2'));
echo json_encode($php_array);