using jquery $.ajax to call a PHP function

Catfish picture Catfish · Feb 15, 2010 · Viewed 392.1k times · Source

This may be a simple answer, but I'm using jQuery's $.ajax to call a PHP script. What I want to do is basically put that PHP script inside a function and call the PHP function from javascript.

<?php 
if(isset($_POST['something'] {
    //do something
}
?>

to this

<?php
function test() {
    if(isset($_POST['something'] {
         //do something. 
    }
}
?>

How would i call that function in javascript? Right now i'm just using $.ajax with the PHP file listed.

Answer

karim79 picture karim79 · Feb 15, 2010

Use $.ajax to call a server context (or URL, or whatever) to invoke a particular 'action'. What you want is something like:

$.ajax({ url: '/my/site',
         data: {action: 'test'},
         type: 'post',
         success: function(output) {
                      alert(output);
                  }
});

On the server side, the action POST parameter should be read and the corresponding value should point to the method to invoke, e.g.:

if(isset($_POST['action']) && !empty($_POST['action'])) {
    $action = $_POST['action'];
    switch($action) {
        case 'test' : test();break;
        case 'blah' : blah();break;
        // ...etc...
    }
}

I believe that's a simple incarnation of the Command pattern.