来自AJAX调用的外部PHP函数

时间:2011-12-01 01:36:14

标签: php jquery

我网站上的所有字符串都是从 lang.php 中名为lang()的php语言函数中提取的。当我在 index.php 文件中使用它时,该函数有效,即:

<p><? echo lang('hello-world'); ?></p>

但是,如果我使用elem.load('something.php');,其中 something.php 包含相同的上述代码,则不会返回任何内容。事实上,如果我输入:

<p><? echo haslkdfhasdf('hello-world'); ?></p>

我甚至没有收到错误。现在,在阅读了这个Call PHP function in ajax并使用header()后,我仍然没有得到返回的字符串。那么我的问题是,为什么函数不能从通过AJAX加载的外部php文件中运行,而我错过了什么?

[编辑] 哎呀忘了我的AJAX代码。这是我用来加载文件的内容:

$('#main-content').load('_foo/views/error.php');

这是error.php文件:

<p id="ajax-error-message">
<? echo lang('html'); ?>
</p>

现在,我知道该文件已加载,因为如果我用“echo'Hello World'替换该函数;”它正确显示它。以下是您需要的网站:http://afoobar.com,当您点击HTML5 Sandbox时,它会执行AJAX。

我会在同一时间尝试你的建议!

1 个答案:

答案 0 :(得分:1)

由于我没有看到您的JavaScript代码(减去elem.load()我无法为您提供有保障的解决方案。但是,我可以建议您更改{{1}对于这样的事情:

elem.load()

此外,您可以使用$.ajax({ url: 'something.php', cache: false, success: function(response) { // do something }, error: function(xhr, error) { try { console.debug(xhr); console.debug(error); } catch (err) { alert(err); } } }); 执行相同的操作。

修改

请记住,您在AJAX调用中拥有$.ajaxSetup();(或include)所有需要的文件,因为它实际上是在发出单独的HTTP请求

require