我需要一个由ajax调用的PHP文件,以便当select的值发生变化时通过AJAX调用另一个文件。
示例: -文件1.php 显示标题等。 对 file2.php 进行 Ajax 调用
文件2.php 显示具有可编辑字段及其数据的服务。 当我更改特定选择的值时,对 file3.php 进行 Ajax 调用
文件3.php 保存该可编辑字段的数据
我提到这一点是因为它在 File1.php 中不起作用,但是如果我直接从 File2.php 中执行它,它会起作用。如果通过 AJAX 调用,File2.php 中的 javascript 似乎不起作用。
不是,因为 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 请求。