在页面上,我有一个带有一些按钮的表单。其中每个都将调用特定的控制器方法并显示相关视图。另外,我有一个按钮“X”,单击该按钮将从表单数据输入中提取特定信息。然后,我想在服务器上处理这些数据。这意味着我必须使用Ajax。但是,在Ajax调用成功后,我想显示一个新的视图文件,同时将一些数据(一个数组)发送到该视图。
我不能在ajax调用的'success'函数中使用'window.location'来重定向到URL,因为我不能再使用返回的数据了。
我如何完成任务?
UPDATE1
我将展示代码片段以解释更多内容:
在projects\running.ctp
:
1)我有一个带有复选框的表单(id包含我将从复选的复选框中收集的唯一项目ID)
2)单击按钮时,我需要发送这些ID以便在服务器上进行处理:
$.ajax({
type: 'POST',
dataType: 'JSON',
url: '/projects/groupCuttingList',
data: {'pj_ids': requiredPjIds},
/*success: function (data, textStatus, qXHR) {
//window.location='';
}*/
});
服务器处理完成后,我想在新的视图文件上显示返回的数据。怎么做? (如果我使用window.location重定向,我将无法发送返回的数据,这是一个JSON阵列数组。)
答案 0 :(得分:1)
你可以做的是让你的ajax函数返回呈现的HTML,然后在success函数中用刚刚返回的内容替换内容包装器的内容。
您可以使用空布局来确保除了返回呈现的HTML之外没有任何其他内容,除此之外它应该非常简单。