如何从ajax调用php函数?

2022-08-30 19:37:15

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

基本上,我想要的是减少项目中的文件数量。因此,我可以将许多常见函数放在一个页面中,然后调用我目前想要的任何函数。


答案 1

对于 AJAX 请求

  1. 在网页中包含 jQuery 库。例如:

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    
  2. 调用函数 on 按钮单击

    <button type="button" onclick="create()">Click Me</button>
    
  3. 单击按钮时,在JavaScript中调用create函数。

    <script>
        function create () {
            $.ajax({
                url:"test.php",    //the page containing php script
                type: "post",    //request type,
                dataType: 'json',
                data: {registration: "success", name: "xyz", email: "abc@gmail.com"},
                success:function(result){
                    console.log(result.abc);
                }
            });
        }
    </script>
    

在服务器端测试.php文件,应读取操作POST参数和相应的值,并在PHP中执行操作并以JSON格式返回,例如

$registration = $_POST['registration'];
$name= $_POST['name'];
$email= $_POST['email'];

if ($registration == "success"){
    // some action goes here under php
    echo json_encode(array("abc"=>'successfuly registered'));
}     

答案 2

您不能直接从 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>

推荐