Php – Make ajax call to a php function include on same page

ajax, php

My question might sound old and already answered to you but I did not find a satisfying answer to my question. Let me explain my scenario clearly,

I got index.php like this


<?php       inlcude("connect.php");       include("functions.php");   ?><html>       $(document).ready(function() {            $('#button').click(function() {                $.ajax({                    type: 'GET',                    data: 'method=test',                    success: function(data) {                        alert(data);                    }            });            });        });</html>

I did not pass the URL in the ajax call and I got the data alert successfully but the entire page from <html> to </html>. When I provide the url to functions.php I get the expected output in the alert box.

I hope you guyz have a close guess about my question. My question is I need to call a function from functions.php which is already included in my index.php page. I don't wanna use functions.php again in the ajax 'URL: ' as functions.php would be called twice. This is to avoid server load.

Let me the you guyz come up with interesting ideas.

Thank you.

Best Solution

Expanding on what Quentin said, You can't directly call a php function from an Ajax request but you can pass over GET & POST Data to a php script and perform an if or switch statement to call your function, so you could do something like this...

//Your Ajax Call

$.ajax({      type:'GET',      url:'functions.php',      data:"function_to_call=0",       success: function(data){        alert('successful');}});

And your PHP functions script would look something like this

     switch ($_GET['function_to_call'])      {         case 0:         {                  function1();               break;         }        case 1:         {              function2();              break;        }        default: break;     }//And your functions.     function function1() {         echo "This is function 1";    }    function function2() {         echo "This is function 2";}