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.