Javascript jquery显示php json编码数组值时出现未定义错误

Javascript jquery显示php json编码数组值时出现未定义错误,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我试图显示从jquerypost接收到的数据。但它给了我一个错误,说“未定义” 我的php json编码数组如下所示 [{"matId":"7","matName":"test","matBrand":"est","matPackaging":"1","matWidth":"434","matHeight":"23","matLength":"23","matWeight":"23","matArea":"23","matVolume":"23","matPerPack":"32","suppl

我试图显示从jquerypost接收到的数据。但它给了我一个错误,说“未定义”

我的php json编码数组如下所示

[{"matId":"7","matName":"test","matBrand":"est","matPackaging":"1","matWidth":"434","matHeight":"23","matLength":"23","matWeight":"23","matArea":"23","matVolume":"23","matPerPack":"32","supplier1":"19","supplier2":"19","supplier3":"19","requiredInPhase":"","stockItem":"1"}]
然后在jquery中,我试图提醒其中一个值,但它给出了错误“未定义”

这是我的jquery代码

$('#matId').on('change', function() {
            var matId = $(this).val();
            $.post('<?php echo base_url() . 'display_mat_details'; ?>', {matId: matId}, function(redata) {
                var obj = $.parseJSON(redata);
                alert(obj.matId);
            });
        });
$('matId')。在('change',function()上{
var matId=$(this.val();
$.post(“”,{matId:matId},函数(redata){
var obj=$.parseJSON(redata);
警报(对象matId);
});
});

这是因为JSON是一个包含对象的数组。。。删除JSON周围的方括号。

这是因为JSON是一个包含对象的数组。。。删除JSON周围的方括号。

您的数据包含在数组的
[]
中。因此您需要使用
[0]
从数组中获取第一个对象

$('#matId').on('change', function() {
  var matId = $(this).val();
  $.post('<?php echo base_url() . '
    display_mat_details '; ?>', {
      matId: matId
    }, function(redata) {
      var obj = $.parseJSON(redata);
      alert(obj[0].matId);
    });
});

您的数据包含在数组的
[]
中。因此您需要使用
[0]
从数组中获取第一个对象

$('#matId').on('change', function() {
  var matId = $(this).val();
  $.post('<?php echo base_url() . '
    display_mat_details '; ?>', {
      matId: matId
    }, function(redata) {
      var obj = $.parseJSON(redata);
      alert(obj[0].matId);
    });
});
使用此代码 将
obj.matId
替换为
obj[0]。matId

  $('#matId').on('change', function() {
                var matId = $(this).val();
                $.post('<?php echo base_url() . 'display_mat_details'; ?>', {matId: matId}, function(redata) {
                   // var obj = $.parseJSON(redata);// error here structure of redata is wrong
                   // alert(obj[0].matId);
                    alert(redata[0].matId);
                });
            });
$('matId')。在('change',function()上{
var matId=$(this.val();
$.post(“”,{matId:matId},函数(redata){
//var obj=$.parseJSON(redata);//错误这里redata的结构是错误的
//警报(obj[0].matId);
警报(redata[0].matId);
});
});
使用此代码 将
obj.matId
替换为
obj[0]。matId

  $('#matId').on('change', function() {
                var matId = $(this).val();
                $.post('<?php echo base_url() . 'display_mat_details'; ?>', {matId: matId}, function(redata) {
                   // var obj = $.parseJSON(redata);// error here structure of redata is wrong
                   // alert(obj[0].matId);
                    alert(redata[0].matId);
                });
            });
$('matId')。在('change',function()上{
var matId=$(this.val();
$.post(“”,{matId:matId},函数(redata){
//var obj=$.parseJSON(redata);//错误这里redata的结构是错误的
//警报(obj[0].matId);
警报(redata[0].matId);
});
});
和使用

$.parseJSON()
您的数组结构应该如下所示

var Content = '{"matId":"7","matName":"test","matBrand":"est","matPackaging":"1","matWidth":"434","matHeight":"23","matLength":"23","matWeight":"23","matArea":"23","matVolume":"23","matPerPack":"32","supplier1":"19","supplier2":"19","supplier3":"19","requiredInPhase":"","stockItem":"1"}';

var obj = $.parseJSON(Content);
alert(obj.matId);
以及使用

$.parseJSON()
您的数组结构应该如下所示

var Content = '{"matId":"7","matName":"test","matBrand":"est","matPackaging":"1","matWidth":"434","matHeight":"23","matLength":"23","matWeight":"23","matArea":"23","matVolume":"23","matPerPack":"32","supplier1":"19","supplier2":"19","supplier3":"19","requiredInPhase":"","stockItem":"1"}';

var obj = $.parseJSON(Content);
alert(obj.matId);

这确实有效,但看起来并不太酷。如果OP有权更改返回的数据,那么这将是首选,而不是订阅结果。如果OP有权更改返回的数据,那么这将是首选,而不是订阅结果。