drupal_add_js(drupal_get_path("module","my_module") . "/my_module.js"); function my_module_perm () { return array( 'access my_module via ajax', ); } function my_module_menu () { $items = array(); $items['my_module/example'] = array( 'page callback' => 'my_module_example', 'access arguments' => array('access my_module via ajax'), 'type' => MENU_CALLBACK, ); return $items; } function my_module_example () { if (empty($_POST["js"])){ die(); } $result = array('msg' => 'my_module_example - hello from php','valid' => true); drupal_json($result); exit(); }Put this Javascript code inside your module's javascript file, e.g. sites/all/modules/my_module/my_module.js
if (Drupal.jsEnabled) { $(document).ready(function () { // ajax return var my_module_example = function (data) { alert(data.msg); } // ajax call $.ajax({ type: 'POST', url: Drupal.settings.basePath + 'my_module/example', dataType: 'json', success: my_module_example, data: 'js=1&my_module_post_data=2012' }); }); }Don't forget to clear Drupal's menu cache and grant permissions to your users to be able to access the menu callback url.