2012-03-21 2 views
0

У меня есть два раскрывающегося списка. первое падение вниз: 1 введите код здесьspring mvc dynamic on change dropdown to other dropdown

<form:select path="custName" id="custName"> 
    <form:option value="walk_in">Walk In</form:option> 
    <c:forEach var="led" items="${name}"> 
     <form:option value="${led.ledName}">${ledger.ledName}</form:option> 
    </c:forEach> 
</form:select> 

второй dropdwon:

<form:select path="customerName" id="c01"> 
     <option value="walk_in">Walk In</option> 
     <c:forEach var="led" items="${name}"> 
     <form:option value="${led}"> 
     </form:option> 
     </c:forEach> 
     </form:select> 

У меня есть следующие Spring Controller

@Controller 
@RequestMapping("/accreq") 

с последующим отображением

@RequestMapping(value="/creditAccount_name.htm",method=RequestMethod.GET) 
     public @ResponseBody String GetName(@RequestParam(value="credit",required=true)String customername, ModelMap model){ 
      List<Journal> journals=journalDao.getReceiptTypeName(customername); 
      System.out.println(customername); 
      String ID = journals.get(0).getJournalId().toString(); 
      System.out.println(ID); 
      return ID;//here i am getting the value in console 
     } 

Я пытаюсь вызвать этот метод со следующего JQuery AJAX

функция getAjaxReceipt() {

var custname=$("#custName").val(); 
if(custname!="walk_in"){ 
    $.ajax({ 
     type:'GET', 
     url:'creditAccount_name.htm', 
     data:{credit:custname}, 
     success:function(data){ 
      $('#c01').val(data);//this is the feild id of second drop down value should display here...but is show empty... 
      alert(data);//here also i am getting the alertbox in jsp 
     }, 
     error:function(xmlHttpRequest, textStatus, errorThrown){ 
      if(xmlHttpRequest.readyState=0 || xmlHttpRequest.status == 0) 
       return; 
     }, 
    }); 
} 

Сценария я получаю значение первого dropdwon через запрос и связывание его в контроллере. когда я выбираю значение первого раскрывающегося списка, его соответствующее значение должно связываться во втором раскрывающемся списке.

для этого я использовал ajax и jquery ... Я успешно получил значение для контроллера и передал значение ajax. Но проблема в том, что значение не является обязательным в раскрывающемся списке. Может ли кто-нибудь сказать мне, что могло пойти не так?

Прблема после того, как значение отображается в предупреждении ... его не отображается во втором раскрывающемся списке.?

ответ

1

Я вижу во второй капле вниз, как <form:option value="${led}"></form:option>. У вас есть значение для этого выпадающего списка, но для этого нет метки для отображения, но для первого выпадающего списка у вас есть <form:option value="${led.ledName}">${ledger.ledrName}</form:option>. Это что-то правильно сделано, но вы не показываете это правильно?

+0

его правильно сделано ... bro – viquar

+0

@viquar «вел» список объектов некоторого типа. так как в первом комбо вы получили доступ как «led.ledName» справа, но во втором выпадающем списке вы присвоили объект самому значению, например value = «{led}». Если это будет назначено аналогично тому, как вы делаете в первом выпадающем списке. Одна вещь, которую вы можете попытаться просмотреть html и посмотреть, как она выглядит, прежде чем менять первый выпадающий список. потому что в ajax вы получаете одно строковое значение, но во втором падении вы назначили значение выпадающего списка как «ведомый» объект. – raddykrish

+0

, bro во втором drop down я дал только значение = $ {led}, даже я попытался с value = $ {variableName.led}, его не показывая значение ... его не связывание ... y это так ? – viquar

1

То, что я понимаю, вы можете с уверенностью получать данные с сервера. Так что ваш url, сопоставления и параметры корректно отправляются. Но возвращенный ответ не отражается в браузере. Если я правильно понимаю, вам нужно обновить страницу (дом дерева или spesific component) с новыми данными. Как this

+0

Брат значение также отображается в предупреждении .. но не в DropDrown feild. – viquar

0

Ваш текущий код не будет работать, поскольку его функция ajax call.and $ работает только при загрузке страницы, значит, она свяжет любую переменную только при загрузке страницы. поэтому вам нужно удалить ваши html-коды второго раскрывающегося списка и добавить код сценария Java для следующих вариантов выпадающего списка:

myselect = document.getElementById ("c01");

// Второй вариант

theOption = document.createElement ("ВАРИАНТ");

theText = document.createTextNode ("JavaScript Tutorial II");

theOption.appendChild (theText);

// этот параметр имеет значение, в URL, поэтому мы устанавливаем значение

theOption.setAttribute ("значение", "index.html");

myselect.AppendChild (theOption);