私はJSONを初めて使用し、データをクリックして表示できるメニューを作成しようとしています。すべてのオブジェクトは、私のasp.netmvcプロジェクトのコントローラーから返されます。
これは私のコードです:
<script language="javascript" type="text/javascript">
function ViewProduct() {
var searchVal = $("#txtsearch").val();
$.getJSON(url, function (data) {
var mainMenu = $("#content ul#navmenu-v");
$.each(data, function (index, dataOption) {
var new_li = $("<li class='level1' id='select_list'><a href='javascript:void(0);' id='" + dataOption.ID + "' class ='selectedcategory'>" + dataOption.Name + "</a>");
mainMenu.append(new_li);
$('a#' + dataOption.ID).click(function () {
var urlGetProByDep = '<%: Url.Content("~/") %>' + "Products/GetProductsByDepList";
t = dataOption.ID;
var data = {};
if (searchVal != "") {
data.depID = t;
data.Q = searchVal;
} else {
data.depID = t;
}
$(".brand_id").empty();
$.getJSON("ProductListing/Index", data, function (product) {
$(".brand_id").empty();
$.getJSON("ProductListing/Index", data, function (product) {
$.each(product.ja, function (index, value) {
$(".brand_id").html( value.Name + "</br>" + value.PictureName + "</br>" + value.ID);
});
});
});
});
}
$(document).ready(function () {
ViewProduct();
});
メニューコードの他のブロックは非常にうまく機能しますが、上記の私のコードのこのブロックに問題があります:
$.getJSON("ProductListing/Index", data, function (product) {
$(".brand_id").empty();
$.getJSON("ProductListing/Index", data, function (product) {
$.each(product.ja, function (index, value) {
$(".brand_id").html( value.Name + "</br>" + value.PictureName + "</br>" + value.ID);
});
});
});
JSONのオブジェクトを取得してビューに表示するのはブロックですが、メニューをクリックすると、JSONオブジェクトの最後の要素のみが表示されます。
これは私のJSONです:
{"ja":
[
{"Name":"ABC1","PictureName1":"my image name1","ID":1},
{"Name":"ABC2","PictureName2":"my image name2","ID":2}
]}
各メニューは、各製品の部門です。また、メニューブロックで製品データをループしないと、部門のIDを取得して、各部門の製品を取得するためのクエリを実行できません。
どんなアイデアや質問でも大歓迎です。お時間を割いていただきありがとうございます。