我正在尝试从 ajax 调用访问 PHP 函数,但我遇到了各种各样的问题,因为这是我第一次做这样的事情。我需要帮助创建该功能或修复我所拥有的功能。
这是我的ajax调用(我只会发布其中的一小部分,因为完整的功能与问题无关)
$.ajax({
type : 'post',
url : 'data.php?action=checkname',
data : {'location':locationName},
error : function(data,status,error){
console.log(data+': '+status+': '+error);
},
success : function(res){
console.log(res);
}
});
PHP函数
<?php
function checkname(){ <--- What do I pass in the function???
$locations = $_POST['location'];
echo $locations;
}
?>
如果我通过调用文件并执行类似的“简单方法”来执行此操作
$locations = $_POST['location'];
echo $locations;
我得到了我需要的返回值,但只用一个小文件来存储我需要创建的所有 ajax 调用是错误的。
最佳答案
你可以设置 php 来做这样的事情。使用 Switch
并在 ajax
中为每个 action
指定一个名称,即您要激活的 Case
的名称。这样您就可以使用相同的文件并根据需要调用不同的函数。
<?php
$action = $_POST["action"];
//check if it was sent using $_GET instead of $_POST
if(!$action)
$action = $_GET["action"];
switch($action){
case 'checkname':
checkname();
break;
case 'otherfunction':
otherfunction();
break;
}//switch
function checkname(){
$locations = $_POST['location'];
echo $locations;
}
function otherfunction(){
//do something else
//echo something;
}
?>
我没有放置ajax,因为你已经进行了ajax调用。 ajax 的这一部分是您将用于操作的名称。 data.php?action=checkname
或者你可以像这样使用数据。
var action = 'checkname';
$.ajax({
type : 'post',
url : 'data.php',
data : {'location':locationName,'action':action},
error : function(data,status,error){
console.log(data+': '+status+': '+error);
},
success : function(res){
console.log(res);
}
});
您可以使用其他ajax函数,只需将变量action更改为您要调用的函数即可。
关于javascript - 从 ajax 调用访问 PHP 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21354703/