簡體   English   中英

ajax 和 json.parse 的問題

[英]issue with ajax and json.parse

我正在嘗試根據第一個下拉列表中的選擇來提供下拉列表(首先定義一個類別,第二個應該列出子類別。這是我的代碼:

<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>

我可以從外部調用中看到的返回顯示如下:

{"SousCategorie":[{"sousCat_Id":"40","SousCat_Nom":"Carburant"},{"sousCat_Id":"41","SousCat_Nom":"Amendes"},{"sousCat_Id":"42" ,"SousCat_Nom":"Entretien"},{"sousCat_Id":"43","SousCat_Nom":"保證"},{"sousCat_Id":"44","SousCat_Nom":"Achat"},{"sousCat_Id" :"73","SousCat_Nom":"洗車"}]}

在 JSON.parse 之后的 alert 語句顯示:

[對象對象]

但是當我嘗試定義 object, SsCategorie.length 的大小時,警報語句顯示:

尾聲 2:未定義

並且 for 循環不起作用。

什么是錯的,什么是缺失的。

對於調試,建議使用console.log語句。 我假設您的 object 內部有嵌套對象,無法在警報中顯示。

您不能在 object 上使用長度方法。 它是一種數組方法。

根據您對嵌套 object 的評論和一些進一步的搜索,我找到了解決方案。 代碼現在

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>') ; 
                            
}
                    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM