Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax和json.parse的问题_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript ajax和json.parse的问题

Javascript ajax和json.parse的问题,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在尝试根据第一个下拉列表中的选择提供一个下拉列表(首先定义一个类别,第二个应该列出子类别)。 这是我的密码: <script type="text/javascript"> $(document).ready(function(){ $("#majCat").change(function(){ var selectCat = $(this).val()

我正在尝试根据第一个下拉列表中的选择提供一个下拉列表(首先定义一个类别,第二个应该列出子类别)。 这是我的密码:

<script type="text/javascript">
    
    $(document).ready(function(){
        $("#majCat").change(function(){
            
            var selectCat = $(this).val()
            alert("TU AS CHOISI " + selectCat);     
            
        
            $.ajax({
                url: 'populate_SousCategorie pour Ajax.php',
                method: 'post',
                data: {Cat: selectCat},
                success: function(SousCategorie){
                    alert("retour" + SousCategorie ); 
                    var SsCategorie = JSON.parse(SousCategorie);
                    alert (SsCategorie);
                    var taille = SsCategorie.length;
                    alert ( "taille 2 : " + taille );
                    var i = 0;
                    alert ( "id1 " + i );
                    for(i ; i < taille ; i++) {
                        alert ( "step  " + i );
                        alert ( "id " + SsCategorie[i].SousCat_Nom);
                        }
                }
            })
            
        })
    })
</script>

$(文档).ready(函数(){
$(“#majCat”).change(函数(){
var selectCat=$(this.val()
警报(“TU AS CHOISI”+选择CAT);
$.ajax({
url:“populate_SousCategorie pour Ajax.php”,
方法:“post”,
数据:{Cat:selectCat},
成功:功能(SousCategorie){
警惕(“撤退”+SousCategorie);
var SsCategorie=JSON.parse(SousCategorie);
警报(SSC分类);
var taille=SsCategorie.length;
警报(“taille 2:+taille”);
var i=0;
警报(“id1”+i);
对于(i;i
我从外部调用中看到的返回显示如下:

{“SousCategorie”:[{“souscategorid”:“40”,“souscatnom”:“caronant”},{“SousCategorie”:“41”,“SousCategorie”:“Amendes”},{“souscategorid”:“42”,“souscatnom”:“entrieen”},{“sousCat Id”:“43”,“souscatnom”:“Assurances”},{“souscategorid”:“44”,“souscategnom”:“Achat”;“souscatu Id”;“73”}

JSON.parse之后的alert语句显示:

[对象]

但当我尝试定义对象的大小时,SsCategorie.length警报语句显示:

taille 2:未定义

而for循环不起作用


什么是错误的,什么是缺失的。

对于调试,建议使用
控制台.log
语句。我假设您的对象中有嵌套对象,不能在警报中显示


不能在对象上使用长度方法。它是数组方法。

根据您对嵌套对象的评论和进一步的搜索,我找到了解决方案。代码现在是

var SsCategorie = JSON.parse(SousCategorie);
var taille = SsCategorie.SousCategorie.length;
var i = 0;
$('#majSSCat').empty();
for(i ; i < taille ; i++) {
    $('#majSSCat').append('<option>'+ SsCategorie.SousCategorie[i].SousCat_Nom 
    +'</option>') ; 
                            
}
                    
var SsCategorie=JSON.parse(SousCategorie);
var taille=SsCategorie.SousCategorie.length;
var i=0;
$('#majscat').empty();
对于(i;i
删除
JSON.parse()
调用。如果响应的MIME类型设置正确,则不需要它。