我一直在研究如何在jQuery文件中调用PHP函数,似乎无法在没有失败的情况下找到正确的方法。我正在尝试使用MVVM创建一个中间(种类)CMS来创建一个带有WordPress基础的单页网站。
目前我正在尝试在分配的文件中访问PHP函数,我已经看到了关于如何使用示例here,here和here使用每个文件的函数来完成它,但我希望能够在文件中调用函数,因为它给了我更清晰的概述。
我检查了链接并且它是正确的,PHP文件名为posts.php
,它位于window.MODELS
定义的位置,但函数fetch_all
未执行。
的JavaScript
//call php function
var requestURL = window.MODELS + 'posts/fetch_all';
$.get(requestURL, function(data){
console.log('checking data: ', data);
}, 'json')
.done(function(passed){
console.log('it worked!');
})
.fail(function(failed){
console.log('it failed :( ');
});
PHP
public function fetch_all(){
return json_encode("this is fetch_all..."); //replace text to get all posts with get_posts()
}
控制台显示JavaScript失败:“它失败了:(”。如何让'fetch_all'执行并返回数据?
答案 0 :(得分:3)
您从jQuery 调用的URL必须匹配服务器上.php文件的位置,例如,要调用的正确URL是:
var requestURL = window.MODELS + 'posts.php?action=fetch_all';
然后,在PHP文件中,您必须根据查询参数选择要调用的函数。您可以在函数声明后添加此代码,以便根据'action'查询参数调用正确的函数:
if ($_REQUEST['action'] == 'fetch_all')
echo fetch_all();
else
echo json_encode( array( 'status' => 'error') );
另外请记住,您的输出应该回显以生成输出而不是简单地返回。
希望它有所帮助, 甲