我熟悉如何让ajax进入一个php页面执行一系列的事情,然后返回json数据。但是可以调用驻留在给定页面中的特定函数吗?如何从ajax调用php函数?
基本上我想要的是减少项目中的文件数量。因此,我可以在一个页面中添加很多常用功能,然后只需调用我想要的功能即可。
我熟悉如何让ajax进入一个php页面执行一系列的事情,然后返回json数据。但是可以调用驻留在给定页面中的特定函数吗?如何从ajax调用php函数?
基本上我想要的是减少项目中的文件数量。因此,我可以在一个页面中添加很多常用功能,然后只需调用我想要的功能即可。
对于ajax请求
1.在您的网页中包含Jquery库。 为如:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
2.Call按钮功能点击按钮
<button type="button" onclick="create()">Click Me</button>
3.当点击,调用javascript中创建功能。
<script>
function create() {
$.ajax({
url:"test.php", //the page containing php script
type: "post", //request type,
dataType: 'json',
data: {registration: "success", name: "xyz", email: "[email protected]"}
success:function(result){
console.log(result.abc);
}
});
}
<script>
在服务器端test.php的文件,动作POST参数应当被理解和相应的值,并做在PHP的动作和JSON格式例如返回
$regstration = $_POST['registration'];
$name= $_POST['name'];
$email= $_POST['email'];
if ($registration == "success"){
// some action goes here under php
echo json_encode(array("abc"=>'successfuly registered'));
}
的结果谢谢,我更喜欢此解决方案。 –
你不能直接从一个AJAX调用调用PHP函数,但是你可以这样做:
<? php
function test($data){
return $data+1;
}
if (isset($_POST['callFunc1'])) {
echo test($_POST['callFunc1']);
}
?>
<script>
$.ajax({
url: 'myFunctions.php',
type: 'post',
data: { "callFunc1": "1"},
success: function(response) { console.log(response); }
});
</script>
够公平的。感谢那。思考当我完成这个项目时,我可能会使用框架。 –
请小心使用此方法,因为响应将包含所有内容,而不仅仅是回应函数 – RamRaider
如果我理解正确的话,当然可以。 把所有的功能放在一个php文件中,并将ajax传递作为你想要调用的参数。然后用开关或结构,执行你想要的。
是的,你可以。只需在当前网址中为ajax请求添加一些标志即可。像你当前的网址?isAjax = 1,并在脚本中检查该标志 –
是的,你可以做到这一点。你必须注意参数,以便函数的调用可以相互区分。在PHP中,你可以使用开关的情况下(并非总是需要)基于这些参数来区分函数 –
mvc模式会有帮助,另一种方法是根据url中传递的参数调用函数。iF ELSE子句的参数和调用相应的功能 –