我想从mysql获取数据,并通过json_encode
回显它。然后我的JQUERY
将通过JSON
抓取$.getJSON
,并将结果附加到我的<ul>
。
我试图找出为什么JQUERY捕获的数据不会在我的index.php上打印
这是我的index.php
<html>
<?php
include_once('connect.php');
$sql = "SELECT * FROM data";
$query = mysql_query($sql);
$result = array();
while($row = mysql_fetch_array($query))
array_push($result,
array(
'name' => $row[1],
'msg' => $row[2]));
echo json_encode(array("key" => $result));
?>
<body>
<ul>
//insert fetch data here
</ul>
<script type="text/javascript" src="./js/jquery.js"></script>
<script type="text/javascript" src="./js/custom.js"></script>
</body>
</html>
这是我的JQUERY
function my_function() {
$.getJSON("index.php", function(data) {
$.each(data.key, function(){
$("ul").append("<li>Name: "+this['name']+"</li>"
"<li>message: "+this['msg']+ "</li>");
});
});
}
答案 0 :(得分:0)
首先:自行检查index.php输出,看看它是否显示有效的json。 ¿是否有无效的UTF8字符?在这种情况下,json_encode的输出为空。
第二次:我使用普通的ajax方法将json作为dataType:
jQuery.ajax({
url: 'index.php',
dataType: 'json'
}).done(function(data) {
for (i=1;i<data.length;i++) {
datarow=data[i];
$("ul").append("<li>Name: "+datarow.name+"</li>");
$("ul").append("<li>message: "+datarow.msg+ "</li>");
}
});
第三:不要使用相同的脚本来生成json并显示它,如果你在前面完成所有操作,那么将视图与app分离是没有意义的。在这种情况下,您可以使用普通的PHP来生成所有内容,如前面的答案所述。 (@Abdoul Sy)
答案 1 :(得分:0)
当您在同一页面上回显JSON时,您无需通过JSON获取数据。 你可以这样做:
<ul id="jsonData" data-json-data="<?php echo json_encode($result;)?>"
在你的js文件中:
var myData = $('#jsonData').data('json-data');