[英]External PHP Function from an AJAX call
我網站上的所有字符串均來自lang.php中名為lang()
的php語言函數。 當我在index.php文件中使用該函數時,該函數有效,即:
<p><? echo lang('hello-world'); ?></p>
但是,如果我使用elem.load('something.php');
,其中something.php包含與上述相同的代碼,則不會返回任何內容。 實際上,如果我鍵入:
<p><? echo haslkdfhasdf('hello-world'); ?></p>
我什至沒有出錯。 現在, 在ajax中閱讀此Call PHP函數並使用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。
同時,我會嘗試您的建議!
由於我沒有看到您的JavaScript代碼(減去elem.load()
所以我無法為您提供有保證的解決方案 。但是,我可以建議您將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);
}
}
});
另外,您可以使用$.ajaxSetup();
進行幾乎相同的操作$.ajaxSetup();
。
編輯
請記住,您已經在AJAX調用中include
(或require
)所有需要的文件,因為它實際上是在發出單獨的HTTP請求 。
// at the top of error.php
require_once '/path/to/lang.php';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.