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

问题描述

我是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 ok作为答复,但总是空着,我错过了什么吗? 任何建议都可以帮助,谢谢。

解决方法

对Web服务器的AJAX请求执行的是PHP文件,而不是PHP函数。您的PHP文件定义了函数getPatientbyId并且不执行它。您的PHP代码还需要调用函数,输出一个Content-Type标头,指出响应中包含JSON,将函数的结果格式化为JSON,然后打印。

,

您无法使用JavaScript获得php的功能,只能回读服务器给您的返回值

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

因此在PHP文件中

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...