AJAX 运行正常,但不显示提取的数据
AJAX is running correctly but doesn't display fetched data
我的PHP查询运行良好(基于Firebug的响应),但它给我的结果[object Object]
在我的直接页面上。所以我猜我的问题出在我的 javascript 上,因为在响应选项卡下的 firebug 上,它会检索我数据库上的所有数据
这是我的JavaScript
function AjaxRetrieve()
{
var rid = document.getElementById('trg').value,
data = {chat: uid, rid: rid, name: user};
$.ajax({
url: "includes/getChat.php",
type: "GET",
data: data,
dataType: 'json',
success: function(result){
var res = $([]);
$.each(result[0], function(key, value) {
res = res.add($('<div />', {text : value}));
});
$("#clog").html(res);
}
});
}
要求的 php 脚本是这样的
$sql7 = "SELECT message_content, username , message_time, recipient FROM ".$tbpre."chat_conversation WHERE msgid=:chat";
$stmt7=$con3->prepare($sql7);
$stmt7->bindValue( 'chat', $msgd, PDO::PARAM_STR);
$stmt7->execute();
$message_query = $stmt7;
$json = array();
if($message_query->rowCount() > 0) {
while($message_array = $stmt7->fetchAll(PDO::FETCH_ASSOC)) {
$json[] = $message_array;
}
echo json_encode($json);
}
我还不太熟悉JQUERY/AJAX/Javascript,所以我实际上不确定我正在做的事情是否正确,我只是将我的一些代码基于jquery的文档和一些 来自我们其他成员的建议在这里
你构造json数据的方式是错误的,试试这个方式
$json =array();
$i=0;
if($message_query->rowCount() > 0) {
while($message_array = $stmt7->fetchAll(PDO::FETCH_ASSOC)) {
$json[$i]= $message_array;
$i++;
}
echo json_encode($json);
}
快乐编码:)
像下面这样更改您的成功回调,您有一个对象数组。
success: function(result){
var container = $("#clog");
$.each(result, function(i, message) {
$.each(message, function(key, value) {
container.append($('<div />').html(key + ':' + value));
});
});
}
编辑:
而且您必须在循环时将fetchAll
更改为fetch
。
while($message_array = $stmt7->fetch(PDO::FETCH_ASSOC)) {
$json[] = $message_array;
}
echo json_encode($json);
或者只使用没有 while 循环的fetchAll
:
$json = $stmt7->fetch(PDO::FETCH_ASSOC);
echo json_encode($json);
相关文章:
- 当使用服务工作者时,脱机页面不显示在提取功能中
- 单击按钮即可显示带有提取的json数据的表
- 如何在android中提取和显示字段
- 从SQlite中提取Lat-Long并在网络视图中显示
- 如何获得要渲染的字符实体(PHP从数据库中提取以在Fullcalendar中显示)
- 显示从AJAX调用中提取的特殊字符时出现问题
- 从一个 html 表单中提取数据并将其显示在另一个页面
- jq网格;以 JSON 格式提取的日期未显示在表中.也无法格式化日期
- 什么可能导致 MVC 应用在从数据库中提取后无法在 IE 中显示当前信息
- 提取并使用javascript / greasemonkey显示网页
- 提取 URL 的中间部分并将其附加到新的外部链接以在 IE8 中显示
- JavaScript 使用加载的数组从中提取数据 并显示在文本框中
- 显示/隐藏从功能中提取的标记
- 如何从.txt文件中提取内容并在HTML中随机显示一行
- Chrome扩展,可以自动提取一些数据并将其显示给用户
- 通过功能和文本提取在web浏览器中突出显示
- 需要帮助自动建议显示(以列表形式)从数据库中提取/匹配的数据
- 从MySQL中提取时,在谷歌地图中显示多个信息框
- 正在提取Smartr中显示的社交档案信息
- AJAX 运行正常,但不显示提取的数据