一个ajax调用的文件可以使用ajax调用另一个文件吗?

问题描述 投票:0回答:1

我需要一个由ajax调用的PHP文件,以便当select的值发生变化时通过AJAX调用另一个文件。

示例: -文件1.php 显示标题等。 对 file2.php 进行 Ajax 调用

文件2.php 显示具有可编辑字段及其数据的服务。 当我更改特定选择的值时,对 file3.php 进行 Ajax 调用

文件3.php 保存该可编辑字段的数据

我提到这一点是因为它在 File1.php 中不起作用,但是如果我直接从 File2.php 中执行它,它会起作用。如果通过 AJAX 调用,File2.php 中的 javascript 似乎不起作用。

javascript php ajax
1个回答
1
投票

不是,因为 AJAX 使用 JS 在浏览器中运行。

如果您通过 AJAX 发送 HTTP 请求来执行 PHP 脚本,那么它会一如既往地在服务器上运行。但是在 AJAX 场景中,即使 PHP 脚本包含一些 JS,该 JS 也永远不会加载到浏览器中(因为 AJAX 会导致异步后台请求,而不是页面加载到浏览器选项卡中),所以 JS 代码当然会永远不要跑。

请注意,即使您在第一个 AJAX 调用结束时使用 JS 将 File2 的整个输出插入到 DOM 中,也不会自动导致其中的 JS 被评估和执行 - 请参阅here了解更多信息。

(注:通过 AJAX 调用的 PHP 脚本可以 使用类似

cURL
的内容发出另一个 HTTP 请求,但听起来在您描述的场景中没有帮助。)


看来你的设计应该是这样的:

File1.php 是浏览器中显示的。这应该包含(或链接到)此功能所需的所有 JS 代码。

File2.php 通过 AJAX 调用,并返回一些数据(可能以 JSON 格式),然后 File1 中的代码构建一些 HTML 并显示该数据。

然后,当特定

select
上发生“更改”事件时,一些 JS 代码(已通过 File1 加载)运行并向 File3 发出 AJAX 请求。

© www.soinside.com 2019 - 2024. All rights reserved.