AJAX कॉलबैक में कस्टम जेएस फ़ंक्शन को शामिल करें?


8

क्या AJAX कॉलबैक में कस्टम JS फ़ंक्शन को लागू करना संभव है?

function MY_MODULE_ajax_callback() {
  // Define a new array to hold our AJAX commands.
  $ajax_commands = array();

  // Create a new AJAX command that replaces the #page text with our own text.
  $ajax_commands[] = [CUSTOM JS FUNCTION]

  // Return our commandS
  return array('#type' => 'ajax','#commands' => $commands);
}

हाँ यही है। या कम से कम यह संभव होना चाहिए। कोई विशेष समस्या?
मोलॉट

जवाबों:


5

आप एक मनमानी स्क्रिप्ट नहीं चला सकते हैं, लेकिन यदि आप अपनी JS कार्यक्षमता को jQuery प्लगइन में लपेट सकते हैं तो आप ajax_command_invokeउसी प्रभाव को प्राप्त करने के लिए उपयोग कर सकते हैं।

$selector = 'body';
$method = 'myJqueryPlugin';
$args = array('arg1', 'arg2');

$ajax_commands[] = ajax_command_invoke($selector, $method, $args);

जब वह सामने के छोर से निकलता है तो वह उसके बराबर कुछ निष्पादित करेगा

$('body').myJqueryPlugin('arg1', 'arg2');

10

हाँ यही है।

कोड नमूना:

$commands = array();
$commands[] = array(
    'command' => 'your_js_callback', // the name of your javascript callback
    'value1'  => 'My first value',
    'value2'  => 'My second value',
);

जेएस कोड:

(function($, Drupal) {
    Drupal.ajax.prototype.commands.your_js_callback = function(ajax, response, status) {
        alert(response.value1);
        alert(response.value2);
    }
})(jQuery, Drupal);

3
यह भी एक अच्छा उदाहरण है
रोटारी राडु
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.