2017-02-07 7 views
0

У меня есть два окна для выпадающего списка, и после того, как я выберем значения и нажмите «Отправить», мне нужно получить значения из базы данных и проверить, что они одинаковы, если они одинаковы, тогда мне нужно отобразите сообщение на той же странице gsp, что и «Оба значения одинаковы». Если они не равны, я должен распечатать полученные значения в текстовой области на той же странице gsp. Все они должны быть отображены в одной и той же GSP странице оныКак получить ответ на ту же страницу GSP

This is my gsp page 

<!DOCTYPE html> 
<html> 
<head> 
<meta name="layout" content="main" /> 
<title>Render Domain</title> 

<g:javascript plugin="jquery" library="jquery" src="jquery/jquery-1.7.2.js"/> 
    <script> 
    $(document).ready(function(){ 
     $('.testMe').click(function(){ 
      var URL="${createLink(controller:'jsonComparison',action:'compare')}"; 
      alert(URL) 
      alert(asd.value) 
      alert(asd1.value) 
      $.ajax({ 
       url:URL, 
       data: {asd:asd.value,asd1:asd1.value}, 
       success: function(data){ 
        //console.log(resp); 
        $("#asd").val(resp.asd); 
        $("#asd").val(resp.asd); 
       } 
      }); 
     }); 
    }); 
    </script> 


</head> 
<body> 
    <g:form> 
     <g:select name="asd" from="${eventsList}" value="1" noSelection="['':'-Choose the From Date-']"/> 
     <g:select name="asd1" from="${eventsList}" value="1" noSelection="['':'-Choose the From Date-']"/> 
     <%-- <g:actionSubmit value="Compare" action="compare" /> --%> 
     <button class="testMe">Compare</button> 
    </g:form> 
</body> 
</html> 

This is my controller method 
def compare(){ 
     println "compare method called" 
     def values = params.asd 
     def values1 = params.asd1 
     println "first value"+ values 
     println "second value"+values1 
     println "form submitted successfully" 
     if(values !=null && values1 !=null){ 
      render (view:"index") 
     } 
     else{ 
      println "values are same" 
     } 

    } 

кто-нибудь поможет мне, как сделать это, как я новичок в Граалей и ударил о том, как это сделать

ответ

0

я добавил небольшой пример с минимальными изменениями , Я предполагаю, что это просто учебная задача, потому что эта архитектура не подходит для реальных решений.

ComareController:

class CompareController { 

    def index() { 
     def eventsList = ['event1', 'event2', 'event3'] 
     render view: 'index', model: [eventsList: eventsList] 
    } 

    def ajaxCompare() { 
     //You can retrieve entries from DB here like Event.get(params.long('firstEventId')) 
     //But it will be better to add EventService to interact with DB 
     render status: 200, text: params.firstEvent == params.secondEvent ? "Equal" : "Different: ${params.firstEvent} != ${params.secondEvent}" 
    } 
} 

сравнить/index.gsp:

<%@ page contentType="text/html;charset=UTF-8" %> 
<html> 
    <head> 
     <title> Render Domain </title> 
     <g:javascript plugin="jquery" library="jquery" src="jquery/jquery-1.11.1.js"/> 
     <script> 
      $(document).ready(function(){ 
       $('#doCompare').click(function(){ 
        $.ajax({ 
         url: "${createLink(controller:'compare', action:'ajaxCompare')}", 
         data: {firstEvent: $('#firstEvent').val(), secondEvent: $('#secondEvent').val()}, 
         success: function(data){ 
          $('#result').val(data) 
         } 
        }); 
       }); 
      }); 
     </script> 
    </head> 

    <body> 
     <g:select name="firstEvent" from="${eventsList}" value="${eventsList.first()}" noSelection="['':'-Choose the From Date-']"/> 
     <g:select name="secondEvent" from="${eventsList}" value="${eventsList.last()}" noSelection="['':'-Choose the From Date-']"/> 
     <button id="doCompare" onclick="void(0);">Compare</button> 
     <br> 
     <textarea id="result"></textarea> 
    </body> 
</html> 
+0

мне нужно вызвать функцию в OnClick = "недействительным (0) –

+0

Нет, недействительным (0) просто ничего не делать так что в этом случае вы можете просто удалить блок onclick из этой кнопки. –

+0

даже после удаления, когда я нажимаю кнопку сравнения, ничего не происходит –