我有一个gsp页面,用户将输入一些信息并确认他的选择。 所以,我需要在提交流程之前控制输入的数据。
我想在模式框中显示对用户的响应,用户可以更改某些数据,然后确认。 响应由控制器根据用户输入的参数进行处理,并准备要呈现的数据列表。
如何在模态框中显示从控制器回复的响应?
修改
第一页包含一个表单,允许用户选择在此类目录中导入文件,并在响应(第二页)中,应用程序显示用户选择导入某些文件而忽略其他文件的文件列表。 / p>
第一页:index.gsp
<g:form id="imp" name="imp" action="test_import">
Periode :<g:select from="${allPer}" id="per" name="per" optionKey="id" value="${per }" /><br>Directory :<g:select from="${alldr}" id="dr" name="dr" optionKey="id" value="${dr}" /><g:actionSubmit class="button-submit" value="Import" /> </g:form>
控制器:
def test_import = {
def dir = null
def per = null
def file_to_import
if(params.coo != null && params.dr != null) {
dir= Directory.get(params.dr)
per = Period.get(params.per)
file_to_import = Import_file.withCriteria()
{
eq('directory',dir)
eq('periode', per)
}
}
[file:file_to_import]
}
第二页:test_import.gsp
<g:form id="imp" name="imp" url="[controller:'Import',action:'import_ok']">
<table>
<tr><td></td>
<td><strong>Ignore</strong></td>
<td ><strong>import</strong></td>
</tr>
<g:findAll in="${file_to_import}" expr="1" >
<tr>
<td>${it.name}</td>
<td><g:radio id="group_${it.id}" name="group_${it.id}" value="1" checked="${false}" /></td> <td><g:radio id="group_${it.id}" name="group_${it.id}" value="1" checked="${false}" /></td>
</tr>
</g:findAll></table> <g:actionSubmit class="button-submit" value="Import" action="import_ok" /></form>
我想在模态框中显示第二页的内容。
答案 0 :(得分:0)
我试过这样做:
在gsp页面中,我创建了2个javacsript函数,第一个调用控制器,第二个使用操作的响应在对话框中处理它。
<a href="javascript:test_import()" onclick="javascript:test_import()">Import</a>
<g:javascript >
function test_import(){
${remoteFunction(action:'test_file_import', controller:'Import', params: '\'dir=\'+document.getElementById(\'dir\').value ',onSuccess: 'CreateDialog(e)')}
}
function CreateDialog(e){
var files = eval("(" + e.responseText + ")")
return $("<div class='dialog' title=''><p>" + files[0].name + "</p></div>")
.dialog({
autoOpen: true,
width: 400,
resizable: false,
height:140,
modal: true,
buttons: {
"Confirm": function() {
$( this ).dialog( "close" );
},
Cancel: function() {
$( this ).dialog( "close" );
}
}
});
}
在我的控制器中,
def test_file_import = {
def file = File.get(params.dir)
FunctionsService fs = new FunctionsService()
def files= fs.get_files(file)
render files as JSON
}
问题:控制器无法读取参数,文件对象无法转换为JSON响应!
感谢您的帮助。