在我的 jquery 函数中得到一个错误
Getting an error on an each in my jquery function
我编写了一个简单的函数来构建一个表单,使用我多次使用的相同代码库。 在此表单中,我添加一个选择对象。 除了选择对象不工作之外,一切都有效。我正在使用 ajax 函数从数据库表中调用数据。故障排除时,我正在获取数据在Chrome上查看网络时返回,但在控制台中出现错误:未捕获的类型错误: 无法读取未定义的属性"长度"。下面是从 ajax 调用返回的数据。
{"oshadaytype":[
{"oshadaytypeid":3,"oshadaytype":"Job Transfer"},
{"oshadaytypeid":2,"oshadaytype":"Light Days"},
{"oshadaytypeid":1,"oshadaytype":"Lost Days"}
]}
这是jquery函数。一切都在工作,除了我得到空的选择对象。
$(function(){
$("#addoshadaysbutton").click(function(){
$.ajax({type: "GET",url: '../posttimetosession.php'}).done();
$("#addoshadaysdiv").empty();
$.ajax({type: "GET",url: '../json/getoshadayjson.php'}).done(function(data){
$("#addoshadaysdiv").append(
$('<div>').append(
$('<label>').text("OSHA Days").addClass("rmargin3 subtitle")
).addClass("paddingbottom3")
).append(
$('<div>').append(
$('<input>').prop({type:"submit",name:"addoshadayssubmit",value:"Save OSHA Days"}).addClass("button")
).addClass("paddingbottom3")
).append(
$('<div>').append(
$('<label>').prop({for:"oshastartdate"}).text("Start Date:").addClass("rmargin3")
).append(
$('<input>').attr({type: 'text',id: 'oshastartdate',name: 'oshastartdate'}).addClass("datepick eighth rmargin10")
).append(
$('<label>').prop({for:"oshaenddate"}).text("End Date:").addClass("rmargin3")
).append(
$('<input>').attr({type: 'text',id: 'oshaenddate',name: 'oshaenddate'}).addClass("datepick eighth rmargin10")
).append(
$('<label>').prop({for:"oshadaytypeid"}).text("OSHA Days Type:").addClass("rmargin3")
).append(
$('<select>').attr({id: "oshadaytypeid",name: "oshadaytypeid"})
)
)
$.each(data.oshadaytype,function(key,value){
$("#oshadaytypeid").append(
$('<option>').prop({value:value.oshadaytypeid}).text(value.oshadaytype)
)
})
});
})
})
错误指向每个函数的开头。
$.each(data.oshadaytype,function(index,value)
对此有任何想法。 它必须很简单。这是 php 代码。
unset($_SESSION['oshadays']);
$appquery = "select * from hrs.oshadaytypes order by oshadaytype";
$results=sqlsrv_query($link,$appquery,array(),array( "Scrollable" => 'static' )) or die('Cannot get the nonemployee record');
if(sqlsrv_has_rows($results)){
while($row = sqlsrv_fetch_array($results,SQLSRV_FETCH_ASSOC)){
$_SESSION['oshadays']['oshadaytype'][]=$row;
}
}
echo json_encode($_SESSION['oshadays']);
所有假设都在这里。返回的数据看起来像一个 JSON 字符串。因此,您有 2 个选择。
1:
设置 ajax 调用的数据类型:
$.ajax({type: "GET", dataType: 'json', url: '../json/getoshadayjson.php'}).done(function(data){
Beacuse dataType 是您希望从服务器返回的数据类型。如果未指定任何内容,jQuery 将尝试根据响应的 MIME 类型进行推断。
阿拉伯数字:
解析 JSON 字符串
var _data = $.parseJSON(data);
$.each(_data.oshadaytype,function(key,value){
只是一个猜测,但也许 AJAX 返回数据由于某种原因没有被解析为 JSON,并且仍然是一个字符串。 那么data.oshadaytype
将是不确定的。 试试这个:
$.each(JSON.parse(data).oshadaytype,function(key,value){
相关文章:
- 我怎么能把一个错误当作未捕获的错误来记录呢
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- javascript window.location在检查firebug时给了我一个错误的url路径
- new SharedWorker(“whatever.js”)返回一个错误
- JSON.parse给了我一个错误,但JSONLint说它'是一个有效的json
- 有人能向我解释一下我犯的一个错误吗
- Jasmine:测试setTimeout函数会抛出一个错误
- JavaScript中的一个错误
- 为什么jqPlot显示了一个错误的饼图,其中包含通过AJAX检索的数据
- Webrtc和socket.io:createanswer()总是有一个错误.为什么?我的代码连接了两个对等体,但其中只
- 使用 jQuery 构建一个元素会给我一个错误
- Chai 期望 [函数] 抛出一个(错误)未通过测试(使用 Node)
- 在我的 jquery 函数中得到一个错误
- Addeventlistener 已转换为 IE.也许是另一个错误
- 我有一个错误,由于某种原因,号码被更改了,而不是名字
- 我无法建立离子机器人项目..它给了我一个错误:生成cmd enont
- JQueryAJAX调用:304 respose产生一个错误
- 继续得到一个错误,即某个东西不是函数,但找不到原因
- jQuerylib会导致一个错误,直到刷新为止
- HTML图像加载触发一个错误