【发布时间】:2015-11-26 10:46:30
【问题描述】:
因此,在我的代码中,当我按下 #jsonclick 按钮时,它会激活我的脚本,该脚本会使用来自 JSON 页面的信息填充表格。我遇到的问题是我得到一个 TypeError: a is undefined,我不知道为什么。 这是我的代码:
jQuery 函数
$("#clickjson").click(function () {
$.getJSON("gmessagegroup.php?gid=" + $('#gbox').val(), function (data) {
$.each(data.messages, function (key, val) {
if (data.messages[key].clientmessageid != undefined) {
console.log(data.messages[key].clientmessageid + ":" + data.messages[key].from + " - " + data.messages[key].content);
$("#messages tbody tr:last").after('<tr><td>' + data.messages[key].clientmessageid + '</td><td>' + escapeHtml(data.messages[key].from).replace("https://bn1-client-s.gateway.messenger.live.com/v1/users/ME/contacts/8:", "") + '</td><td id=' + data.messages[key].clientmessageid + ' contenteditable="true">' + escapeHtml(data.messages[key].content) + '</td></tr>');
}
});
});
setTimeout(function () {
var message_status = $("#status");
$("td[contenteditable=true]").blur(function () {
var field_userid = $(this).attr("id");
var value = $(this).text();
$.post('groupedit.php', field_userid + "=" + value, function (data) {});
});
}, 1000);
});
代码在下拉选择中获取所选项目的值。我尝试输入并发出警报,它正在输出被推送到 PHP 的正确值。我不确定 TypeError 在哪里发挥作用,我所知道的是,当我从 php 末尾删除 ?gid=" + $('#gbox').val() 时,错误消失了。问题是,我需要它才能让 php 工作。有人可以告诉我为什么会这样吗?
谢谢。
【问题讨论】:
-
这意味着您的页面中没有找到具有
gboxid的元素,请检查。 -
-
然后确保
gmessagegroup.php?返回有效的 json。在控制台中检查 -
当你执行ajax函数获取json时,可能你的select在DOM中没有准备好。你可以检查一下:
?gid="+ (($('#box').val()) ? $('#box').val() : 0),如果找不到#box,它将返回0。 -
如果我执行 gmessagegroup.php?gid='valuehere',我会得到一整页的 JSON 响应。 'valuehere' 是我手动放置的值。除了 TypeError 之外,我没有收到其他错误
标签: javascript php jquery typeerror