开发者

Call PHP Function using jQuery AJAX

I've read all the 开发者_运维问答topics about my question but cannot solve my problem. I want to get php function result using jQuery AJAX.

function.php

function generateCode() {
//code here
}

function generateResult() {
//code here
}

How can I catch the function result using jQuery AJAX? I don't want to change function.php structure because it related to another pages.

Refer to using jquery $.ajax to call a PHP function, no answer can solve my problem. Thank You


You cannot call a function in a PHP file from Javascript, full stop. The client (here: Javascript) can only communicate with the server (here: PHP) through the HTTP protocol. The HTTP protocol has no notion of files, functions or programming languages. This means you're limited to transmitting information via the URL or HTTP headers. As such, you can never call a PHP function from Javascript, all you can do is request a URL which returns data.

So, by requesting a URL, say http://example.com/myscript.php, the script myscript.php gets invoked. This script now has to figure out what it should do and output some response. This script can actually call PHP functions, e.g.:

// myscript.php

include 'functions.php'
echo generateCode();

As such, whenever you request the URL http://exmaple.com/myscript.php, you will get the output of the function generateCode(). You may notice that this works the same as when you visit a URL with a web browser. That's because this is the only mechanism to run code through a web server using the HTTP protocol and hence the only way Javascript can "call PHP functions". Javascript has no secret backdoor to call PHP functions directly.

Hope this helps.


What I do is in JavaScript I pass PHP function name which I want to call. Like..

function MyFunction() {
jQuery.ajax({
    type: "GET",
    url: "function.php",
    data: "call=generateCode",
    success: function(response){
        //do something
    });
}

Here in data field "call" variable have function name to call from "function.php" file.

in "function.php" I place below code to call the function

if($_SERVER['REQUEST_METHOD']=="GET") {
$function = $_GET['call'];
if(function_exists($function)) {        
    call_user_func($function);
} else {
    echo 'Function Not Exists!!';
}
}


JQuery

$.ajax({
      url: "script.php",
      type: "POST",
      data: "id=1",
      success: function(msg){
         alert(msg);
      }
   }

PHP

<?php
    $id = $_POST['id'];
    echo "The id is ".id;
?>

You'll get php function result in msg from $.ajax success state.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜