如何使用Ajax在javascript中调用php函数?

如何使用Ajax在javascript中调用php函数?,javascript,php,ajax,Javascript,Php,Ajax,我不熟悉javascript和ajax,我想调用php函数,该函数在javascript文件中返回患者年龄,因此我尝试探索我在这里找到的关于这个问题的答案,但我无法解决它,这是一个名为get-patient-age.php的php文件: function getPatientbyId($id) { $q = DB::pdo()->prepare("SELECT p.birthday FROM patient AS p WHERE id_patient = :patient&q

我不熟悉javascript和ajax,我想调用php函数,该函数在javascript文件中返回患者年龄,因此我尝试探索我在这里找到的关于这个问题的答案,但我无法解决它,这是一个名为get-patient-age.php的php文件:

function getPatientbyId($id) {
  $q = DB::pdo()->prepare("SELECT p.birthday FROM patient AS p WHERE id_patient = :patient");
  $q->bindValue(':patient', (int)$id    , PDO::PARAM_INT);
  $q->execute();
  return $q->fetch(2);
}
下面是我如何使用ajax调用它的:

$.ajax({
  type: "GET",
  url: 'get-patient-age.php',
  dataType: 'json',
  data: {functionname: 'getPatientbyId', arguments: 1},
  success: function (obj, textstatus) {
             if( !('error' in obj) ) {
                        ;
               console.log(obj.result);
             } else {
               console.log(obj.error);
             }
           }
});
我的回答是200行,但总是空的,我遗漏了什么吗?
任何建议都会有所帮助,谢谢。

对web服务器的AJAX请求执行的是PHP文件,而不是PHP函数。PHP文件定义函数
getPatientbyId
,但不执行它。您的PHP代码还需要调用函数,输出一个
内容类型
头,说明响应中有JSON,将函数结果格式化为JSON,然后打印出来。

您无法使用JavaScript获取PHP函数,只能读回服务器给您的返回值

在服务器端,您需要侦听get请求,如果它包含“functionname”,则调用该函数并将返回值发送到页面

所以在PHP文件中

var isFunc = $_GET["functionname"]
var args = $_GET["arguments"]
if(isFunc== "getPatientbyId") echo getPatientbyId(args)

是的,完成了,解决了,我还添加了json_encode函数