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