如何从ajax调用php函数?

新手上路,请多包涵

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

基本上我想要的是减少项目中的文件数量。所以我可以把很多常用函数放在一个页面上,然后调用我现在想要的任何函数。

原文由 Josip Gòdly Zirdum 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 569
2 个回答

对于 AJAX 请求

  1. 在您的网页中包含 jQuery 库。例如
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

  1. 单击按钮时调用函数
   <button type="button" onclick="create()">Click Me</button>

  1. 单击按钮时,在 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>

在服务器端的 test.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'));
}

原文由 Nitheesh K P 发布,翻译遵循 CC BY-SA 4.0 许可协议

作为这种目的的结构,我建议:

PHP

 <?php
    if(isset($_POST['action'])){
        if ($_POST['action'] == "function1") { func1(); }
        if ($_POST['action'] == "function2") { func2(); }
        if ($_POST['action'] == "function3") { func3(); }
        if ($_POST['action'] == "function4") { func4(); }
    }

    function func1(){
        //Do something here
        echo 'test';
    }
?>

jQuery

 var data = { action: 'function1' };

$.post(ajaxUrl, data, function(response) {
    if(response != "") {
        $('#SomeElement').html(response);
    }else{
        alert('Error, Please try again.');
    }
});

如前所述,您不能直接从 AJAX 调用中调用 PHP 函数。

原文由 Asef Hossini 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题