[英]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.