【发布时间】:2010-01-14 18:33:50
【问题描述】:
我正在为这个项目使用 codeigniter。我有一个搜索表单和搜索表单结果。
现在,当我在搜索表单中单击搜索时,我将被重定向到搜索表单结果并获得结果。
是否可以在搜索表单中创建最初隐藏的 div 或 table,然后调用搜索过程并返回哪些结果以将它们返回页面而不重新加载?
使用 jquery/ajax/php ?谢谢
【问题讨论】:
我正在为这个项目使用 codeigniter。我有一个搜索表单和搜索表单结果。
现在,当我在搜索表单中单击搜索时,我将被重定向到搜索表单结果并获得结果。
是否可以在搜索表单中创建最初隐藏的 div 或 table,然后调用搜索过程并返回哪些结果以将它们返回页面而不重新加载?
使用 jquery/ajax/php ?谢谢
【问题讨论】:
我假设您的搜索结果视图只包含一个用于搜索结果的 HTML 块(如 TABLE 或类似的,而不是带有 BODY 的完整 HTML 页面)?如果不更新视图,那么它只包含结果的代码。然后您可以使用$.post method 提交表单获取视图,然后将其注入 DIV(或您选择的元素):
$(document).ready(function() {
$('#myformid').submit(function() {
var seralizedForm = $(this).serialize();
var url = $(this).attr('action');
$.post(url, serializedForm, function(results) {
$('#resultsDiv').html(results);
}, "html");
return false;
});
});
这应该以最少的修改插入您的代码。将“myformid”更改为您在表单标签上设置的 ID,并将“resultsDiv”更改为您希望结果进入的空 DIV 的 ID。
这要做的是绑定这个函数,以便在提交表单时调用(通过按回车键或单击提交按钮)。它将序列化表单(因此您可以将输入的值发送到控制器)并通过表单具有的正常“操作”属性获取要提交的 URL。
然后它将通过帖子将表单提交到该 URL,结果将加载到 ID 为 resultsDiv 的 DIV 中。
【讨论】:
是的,事实上是可能的。
对于 CodeIgniter,我会为您想要显示的内容编写一个控制器函数和视图。然后,对页面进行 AJAX 调用,这将是您希望在页面上显示的任何内容,并将其加载到当前页面。
如果您使用的是 jQuery,您可以查看他们的 Various AJAX Functions 以进行 ajax 调用并检索数据
【讨论】: