Как отправить форму с двумя кнопками отправки на два разных действия контроллера в граалях - PullRequest
0 голосов
/ 25 июля 2011

У меня есть форма, собирающая некоторые данные, и после этого я хочу выполнить действие «generatehtmlreport», если пользователь нажимает кнопку «Создать отчет в формате html», и при нажатии этой кнопки будет отображаться другая кнопка, при выполнении действия контроллера «generatepdfreport» и главное это не должны отправляться данные отчета html. вот форма у меня

<g:form name = "report_generation" id ="report_generation">
  <input type = "hidden" name = "report_type" class = "report_type" value = "${reportType}"/>
    <fieldset>
      <legend class="form_legend">${reportTitle}</legend>
      <div class="dialog">
        <g:render template="/templates/filterTemplate" />
          <div class="cb"></div>
      </div>
    </fieldset>
    <div id = "report_buttons">
      <input type = "submit" value = "Generate Report" class="td_link" name ="generate_report_html_btn" id = "generate_report_html_btn"/>
      <input type = "submit" value = "Export as PDF" style="display:none" class="td_link pdf_button" name ="generate_report_pdf_btn" id = "generate_report_pdf_btn"/>
    </div>
</g:form>

<div id = "html_report_section"></div>

Ответы [ 2 ]

3 голосов
/ 25 июля 2011

Используйте тег g: actionSubmit :

<g:form>
   // your fields
   <g:actionSubmit action="generateReport" value="Genereate Report" />
   <g:actionSubmit action="exportAsPDF" value="Export as PDF" />   
</g:form>  
0 голосов
/ 25 июля 2011

В исходном вопросе не указано, что вы хотите, чтобы отправленная форма была Ajax-вызовом.Чтобы вызывать различные действия Ajax в одной и той же форме, я использовал теги RemoteLink:

<g:form>
   // your fields
   <g:remoteLink action="generateReport" >Genereate Report</g:remoteLink>
   <g:remoteLink action="exportAsPDF" >Export as PDF</g:remoteLink>
</g:form>

В документации Grails приведены другие свойства и примеры RemoteLink.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...