所以我已经检查了很多例子和相当多的教程,但由于某些未知原因它绝对不适合我。
我已经检查了Get JSON data from another page via JavaScript,但它并没有给我带来帮助。
所以我想要做的是从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>
谢谢!
答案 0 :(得分:0)
有两个问题
dataType: JSON
$.ajax
在test.php中你的成功数据应该被json解码为Jquery所以你可以使用$.parseJson(data)
。
请参考此[示例] :( http://www.jquerybyexample.net/2012/05/how-to-read-and-parse-json-using-jquery.html)
答案 1 :(得分:0)
尝试将alert(dataJson[i].latt
更改为alert(dataJson[i].users.latt
我可能错了,但看起来你永远不会进入你硬编码到响应中的用户项目。
答案 2 :(得分:0)
我看到了问题 $ .ajax是jquery元素所以 首先包括jquery.js文件,然后在此使用$ .ajax
中添加document.ready下面的例子对我有用 这是你的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);