2016-09-14 2 views
0

Я новичок, когда дело доходит до javascript (Json). Я пытаюсь заполнить раскрывающийся список на основе выбора другого раскрывающегося списка. как вы можете видеть на изображении ниже в качестве примера, я пытаюсь заполнить раскрывающийся список «Правило выбора» на основе раскрывающегося списка «Шаблон продукта». также доступен запрошенный код.Заполнение раскрывающегося меню с данными JSON в представлении Mvc

Любая помощь будет оценена по достоинству.

спасибо

function drFilter() 
{ 
    var productTemp = $('#ddlProdTemp :selected').val(); 
    $.getJSON('ptdrFilter', { productTemplate: productTemp }, function (result) { 
     var ddl = $('#ddl2'); 
     var length = result.length; 
     ddl.empty(); 
     if (length > 0) { 

      $(document.createElement('option')) 
      .attr('value', 0) 
      .text("-- Please Select --") 
      .appendTo(ddl); 
     } 

     $(result).each(function (will) { 
      // 
      $(document.createElement('option')) 
       .attr('value', result[will]) 
       .text(result[will]) 
       .appendTo(ddl); 
     }); 
    }); 
} 


public ActionResult ptdrFilter(int id) 
    { 
     IUnitOfWork uow = DataAccess.GetUnitOfWork(); 
     using (ManageProductTemplate ptLogic = new ManageProductTemplate(ref uow)) 
     { 
      List<ProductTemplate> currentpt = ptLogic.GetBy(x => x.ProductTemplateID == id); 
      List<string> pt = new List<string>(); 
      foreach (var item in currentpt) 
      { 
       pt.Add(item.DistributionRule.Name); 

      } 
      return Json(pt); 
     } 
    } 

enter image description here

+0

Показать, что ваш результат содержит, console.log (результат); и проверьте вашу консоль, тогда я смогу дать вам некоторую помощь :) –

+0

Я добавил метод, однако консоль не появляется нигде, я также обновил код с помощью контроллера, если это поможет – user5813072

ответ

0
<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <meta charset="utf-8" /> 
    <script src="https://code.jquery.com/jquery-3.1.0.slim.min.js"></script> 
</head> 
<body> 

    <select id="main"> 
     <option value="a">A</option> 
     <option value="b">B</option> 
    </select> 

    <select id="subselect"></select> 

    <script> 
     var sampleData = { a: { value1: "text 1 in a", value2: "text 2 in a" }, b: { value1: "text 1 in b", value2: "text 2 in b" } }; 
     var dataInJSONForm = JSON.stringify(sampleData); 
     var datainJSObjectForm = JSON.parse(dataInJSONForm); 

     $('#main').on('change', function (e) { 
      var valueChosenInMain = $(this).val(); 
      var options = datainJSObjectForm[valueChosenInMain]; 

      var $subselect = $('#subselect'); 
      $subselect.children().detach(); 
      for (var property in options) { 
       $subselect.append($('<option>', { value: property, text: options[property] })); 
      } 
     }); 
    </script> 
</body> 
</html> 
Смежные вопросы