2016-09-06 81 views
3

我熟悉如何让ajax进入一个php页面执行一系列的事情,然后返回json数据。但是可以调用驻留在给定页面中的特定函数吗?如何从ajax调用php函数?

基本上我想要的是减少项目中的文件数量。因此,我可以在一个页面中添加很多常用功能,然后只需调用我想要的功能即可。

+0

是的,你可以。只需在当前网址中为ajax请求添加一些标志即可。像你当前的网址?isAjax = 1,并在脚本中检查该标志 –

+0

是的,你可以做到这一点。你必须注意参数,以便函数的调用可以相互区分。在PHP中,你可以使用开关的情况下(并非总是需要)基于这些参数来区分函数 –

+0

mvc模式会有帮助,另一种方法是根据url中传递的参数调用函数。iF ELSE子句的参数和调用相应的功能 –

回答

7

对于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')); 
} 
+0

的结果谢谢,我更喜欢此解决方案。 –

3

你不能直接从一个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> 
+0

够公平的。感谢那。思考当我完成这个项目时,我可能会使用框架。 –

+0

请小心使用此方法,因为响应将包含所有内容,而不仅仅是回应函数 – RamRaider

0

如果我理解正确的话,当然可以。 把所有的功能放在一个php文件中,并将ajax传递作为你想要调用的参数。然后用开关或结构,执行你想要的。