Javascript 在我的jquery函数中的each上获取错误
我已经编写了一个简单的函数来使用我多次使用的相同代码库构建表单。在这个表单中,我添加了一个select对象。除“选择”对象不工作外,所有操作都正常。我使用ajax函数调用数据库表中的数据。故障排除时,我正在获取数据 回到chrome上查看网络时,但在控制台中,我发现错误: 未捕获的TypeError:无法读取未定义的属性“length”。 下面是从ajax调用返回的数据Javascript 在我的jquery函数中的each上获取错误,javascript,jquery,ajax,Javascript,Jquery,Ajax,我已经编写了一个简单的函数来使用我多次使用的相同代码库构建表单。在这个表单中,我添加了一个select对象。除“选择”对象不工作外,所有操作都正常。我使用ajax函数调用数据库表中的数据。故障排除时,我正在获取数据 回到chrome上查看网络时,但在控制台中,我发现错误: 未捕获的TypeError:无法读取未定义的属性“length”。 下面是从ajax调用返回的数据 {"oshadaytype":[ {"oshadaytypeid":3,"oshadaytype":"Job Transfer
{"oshadaytype":[
{"oshadaytypeid":3,"oshadaytype":"Job Transfer"},
{"oshadaytypeid":2,"oshadaytype":"Light Days"},
{"oshadaytypeid":1,"oshadaytype":"Lost Days"}
]}
下面是jquery函数。除了得到空的select对象外,所有操作都正常
$(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)
)
})
});
})
})
有什么想法吗。它必须是简单的东西。
下面是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']);
只是一个猜测,但可能由于某种原因,AJAX返回数据没有被解析为JSON,仍然是一个字符串。然后,
data.oshadaytype
将是未定义的。试试这个:
$.each(JSON.parse(data).oshadaytype,function(key,value){
只是一个猜测,但可能由于某种原因,AJAX返回数据没有被解析为JSON,仍然是一个字符串。然后,
data.oshadaytype
将是未定义的。试试这个:
$.each(JSON.parse(data).oshadaytype,function(key,value){
只是一个猜测,但可能由于某种原因,AJAX返回数据没有被解析为JSON,仍然是一个字符串。然后,
data.oshadaytype
将是未定义的。试试这个:
$.each(JSON.parse(data).oshadaytype,function(key,value){
只是一个猜测,但可能由于某种原因,AJAX返回数据没有被解析为JSON,仍然是一个字符串。然后,
data.oshadaytype
将是未定义的。试试这个:
$.each(JSON.parse(data).oshadaytype,function(key,value){
这里的所有假设。返回的数据看起来像一个JSON字符串。因此,您有两种选择 1: 设置ajax调用的数据类型:
$.ajax({type: "GET", dataType: 'json', url: '../json/getoshadayjson.php'}).done(function(data){
因为dataType是您期望从服务器返回的数据类型。如果未指定,jQuery将尝试根据响应的MIME类型推断它
2:
这里的所有假设。返回的数据看起来像一个JSON字符串。因此,您有两种选择 1: 设置ajax调用的数据类型:
$.ajax({type: "GET", dataType: 'json', url: '../json/getoshadayjson.php'}).done(function(data){
因为dataType是您期望从服务器返回的数据类型。如果未指定,jQuery将尝试根据响应的MIME类型推断它
2:
这里的所有假设。返回的数据看起来像一个JSON字符串。因此,您有两种选择 1: 设置ajax调用的数据类型:
$.ajax({type: "GET", dataType: 'json', url: '../json/getoshadayjson.php'}).done(function(data){
因为dataType是您期望从服务器返回的数据类型。如果未指定,jQuery将尝试根据响应的MIME类型推断它
2:
这里的所有假设。返回的数据看起来像一个JSON字符串。因此,您有两种选择 1: 设置ajax调用的数据类型:
$.ajax({type: "GET", dataType: 'json', url: '../json/getoshadayjson.php'}).done(function(data){
因为dataType是您期望从服务器返回的数据类型。如果未指定,jQuery将尝试根据响应的MIME类型推断它
2:
实际错误是什么?console.log(数据类型)输出什么?还可以在ajax调用中设置
dataType:'json'
。chrome控制台指向$。每个声明uncaughttypeerror的函数:无法读取未定义的属性'length'。我在任何地方都找不到其他错误。我的php日志是干净的。你100%确定数据
包含你认为它的功能吗?我像往常一样从chrome网络窗格中提取数据。实际错误是什么?控制台.log(数据类型)输出什么?还可以在ajax调用中设置dataType:'json'
。chrome控制台指向$。每个声明uncaughttypeerror的函数:无法读取未定义的属性'length'。我在任何地方都找不到其他错误。我的php日志是干净的。你100%确定数据
包含你认为它的功能吗?我像往常一样从chrome网络窗格中提取数据。实际错误是什么?控制台.log(数据类型)输出什么?还可以在ajax调用中设置dataType:'json'
。chrome控制台指向$。每个声明uncaughttypeerror的函数:无法读取未定义的属性'length'。我在任何地方都找不到其他错误。我的php日志是干净的。你100%确定数据
包含你认为它的功能吗?我像往常一样从chrome网络窗格中提取数据。实际错误是什么?控制台.log(数据类型)输出什么?还可以在ajax调用中设置dataType:'json'
。chrome控制台指向$。每个声明uncaughttypeerror的函数:无法读取未定义的属性'length'。我在任何地方都找不到其他错误。我的php日志是干净的。你100%确定数据
包含你认为它的功能吗?我像往常一样从chrome网络窗格中提取数据。就是这样。我没有设置数据类型。愚蠢的我。谢谢各位,就这样。我没有设置数据类型。愚蠢的我。谢谢各位,就这样。我没有设置数据类型。愚蠢的我。谢谢各位,就这样。我没有设置数据类型。愚蠢的我。谢谢各位。