2015-09-23 174 views
0

我想通過JQuery選擇父類別時列出子類別。 在這裏,我只收到子類別的最後一個項目,當我點擊父類別。如何通過JavaScript從父類別獲取每個子類別?

如何獲取所有項目都屬於該父項?

function update_subscategories_div(parent_id) { 
 
    var result={},objectlength 
 
    jQuery.ajax({ 
 
    url: "/get_subscategories/"+parent_id+".json", 
 
    type: "GET", 
 
    data: {"parent_id" : parent_id}, 
 
    dataType: "html", 
 
    success: function(data) { 
 
     result = JSON.parse(data) 
 
     objectlength =result.length 
 
     for(var i=0; i<objectlength; i++) 
 
     { 
 
     var name = jQuery("#categoriesDiv").html(result[i].name); 
 
     } 
 
     console.log(name); 
 
     console.log(objectlength); 
 
    } 
 
    }); 
 
}

Table

+0

使用這個變量名稱=的jQuery( 「#categoriesDiv」)HTML(結果[I]。名稱)。它會在您的for循環運行時每次替換您的代碼。首先,您必須將這些值存儲在來自for循環的數組中。然後根據您的要求打印此陣列。 –

+0

@ Deepak saini你能編輯代碼嗎,我對數組循環沒有太多的知識 – SreRoR

+0

你是否需要下拉選項? –

回答

2
jQuery("#categoriesDiv").html(result[i].name); 

用下面的替換它。

jQuery("#categoriesDiv").append('<option>'+result[i].name+'</option>'); 

我覺得categoriesDiv這個ID應該是選擇框。 。 例如:

<select id="categoriesDiv"> 
    </select> 

而之前添加此for循環在成功函數的jQuery( 「#selectprarentId」)找到( '選項')刪除();

然後它會工作。

+0

謝謝迪帕克它爲我工作...非常感謝:) – SreRoR

+0

@sreena不客氣。 :) –

2

你可以有一個全局的數組,每個子類別添加到陣列中的for循環和返回,在年底。

var subcat = [];//Array of subcategories 
    for (var i = 0; i < objectlength; i++) { 
     subcat.push(result[i].name); 

} 

同樣的,現在你可以像上面那樣循環子類型數組。

+0

可以請你分享循環數組的代碼。 – SreRoR

+0

@sreena檢查我的答案我已經更新了數組填充。 – Addy

+0

非常感謝這個代碼作品 – SreRoR

2

你的問題是在這裏

for(var i=0; i<objectlength; i++) 
{ 
     var name = jQuery("#categoriesDiv").html(result[i].name); 
} 

你重新定義了在每個迭代name值。這就是爲什麼你會得到你的子類別中的最後一個值。

更改您的代碼看起來像

var name = ""; 
var categoriesDiv = jQuery("#categoriesDiv"); 
for(var i=0; i<objectlength; i++){ 
    var currentText = categoriesDiv .html(); 
    var newText = currentText+' '+ result[i].name; 
    categoriesDiv .html(newText); 
    name += ' ' + result[i].name; // this may not be necessary 
} 
console.log(categoryArray); 
console.log(objectlength); 
1
function update_subscategories_div(parent_id) { 
    var result={},objectlength; 
    jQuery.ajax({ 
    url: "/get_subscategories/"+parent_id+".json", 
    type: "GET", 
    data: {"parent_id" : parent_id}, 
    dataType: "html", 
    success: function(data) { 
    jQuery("#categoriesDiv").find('option').remove(); 
     result = JSON.parse(data); 
     objectlength =result.length; 
     for(var i=0; i<objectlength; i++) 
     { 
     jQuery("#categoriesDiv").append('<option>'+result[i].name+'</option>'); 
     } 
     console.log(name); 
     console.log(objectlength); 
    } 
    }); 
} 
+0

感謝朋友,這段代碼也適用於我 – SreRoR