1

我有一个 php 页面。这有多个看起来像标签的图像。在这个 php 页面中,我有一个 div,它将在单击我之前提到的不同图像时加载不同的 PHP 页面。这是使用 Ajax 完成的。这大部分都可以正常工作,无需重新加载页面。这样做是为了在不重新加载页面的情况下模拟选项卡操作。其中大部分工作正常。

但现在我需要对内部 php 文件之一进行搜索操作。当我在kepup上使用Ajax进行搜索操作并将结果显示在另一个带有内部php的div中时,它变成了一个php,在php中,另一个php进入它。总共 3 层 php,全部使用 ajax 加载。

我在这个阶段面临一个问题。作为选项卡操作的第一层适用于 AJAX。使用 ajax 的下一层搜索也可以工作,但也会重新加载外部 php。所以看起来好像是点击了选项卡而不是搜索操作。所以现在我遇到了一个困惑,好像通过 ajax 加载表单然后在自身内部进行 ajax 搜索以使用 keyup 显示结果的概念,对吗?这可能吗?

那么是我做错了还是不可能有这个选项?因为当我直接使用没有 ajax 的 url 加载内部 php 时,搜索工作得非常好。这是否可以使用代码点火器以更简单的方式实现。请让我知道您对此的评论以及您的建议。我相信你会对我提出的问题有很多疑问。请让我知道您的问题,我会尽力回复他们。所有建议表示赞赏。提前致谢。

4

6 回答 6

1

我认为您在这里将 AJAX 与框架混淆了。

使用框架时,您是在父页面内加载页面,子页面中的正常操作不会影响父页面。使用 AJAX 时,认为它是在当前页面中插入内容,任何插入的内容都会成为页面的一部分,并且在那里执行的任何操作都会影响页面,ajax 中没有子页面的概念。

对于您的问题,正如许多人所提到的,您必须在单击搜索时发起回发(如表单提交),这会导致页面重新加载。

于 2009-08-19T16:05:29.683 回答
0

从理论上讲,这个想法应该可行。如果可能的话,你能给我提供更多信息吗?

问题:

你的设置和这个类似吗?

父 HTML (parent) > (innverdiv1) DIV 其中选项卡通过 ajax 加载页面出现 > (innerdiv2) DIV 在加载的页面内

因为,理论上,您可以让 Ajax 加载页面 (innverdiv1) 也执行 ajax,但新页面 (innerdiv2) 的域应该仅限于第一个 ajax 加载页面内的 DIVS。

于 2009-07-09T02:57:45.080 回答
0

您说您的外部页面也重新加载,您是否将表单操作参数设置为您要向其发出请求的页面?如果是这种情况,您的浏览器会在点击提交按钮后重定向您。

于 2009-07-09T07:05:59.810 回答
0

这应该有效。

我认为您在某处导致它重新加载整个页面而不仅仅是 DIV。提交按钮之类的东西会做到这一点。

您是否在搜索引用的 javascript 部分中的任何位置对父窗口进行了引用?还是父对象?当您尝试调用相应的选项卡时,您实际上可能正在调用整个页面。

于 2009-08-17T15:40:58.543 回答
0

“搜索”按钮是否使 fosrm 提交?:) 你的想法有效(我已经做过类似的事情),但你的代码中必须有一个错误

于 2009-08-18T08:48:05.560 回答
0

AJAX 调用返回的给选项卡的内容必须包含 javascript AJAX 代码以供其自己操作并自行执行。大多数框架应该允许使用类似“evalScripts:true”的东西。

例如,选项卡中包含的是第一个 AJAX 调用的结果(在表单本身之后):

<script>
   $('ajaxpostform').addEvent('submit', function(e) {
        new Event(e).stop();
        var update = $('ajax_content');
        this.send({
            update: update,
            evalScripts: true,
        });
   });
</script>

这是使用 Mootools 编写的,并假设表单的 id 是“ajaxpostform”。唯一需要注意的是确保获取选项卡的原始 AJAX 调用中也包含“evalScripts: true”。这应该可以,我以前用过。

于 2009-08-19T15:46:43.293 回答