AJAX के साथ स्थिति संदेश


11

मैं मानक AJAX फ्रेमवर्क के माध्यम से ड्रुपल 7 में AJAX कॉल कर रहा हूं। मेरी समस्या यह है कि जब AJAX कॉलबैक द्वारा स्थिति संदेश सेट किया जाता है, तो यह बस खो जाता है (या पृष्ठ के अगले पुनः लोड पर प्रदर्शित होता है)। पेज को पुनः लोड किए बिना, AJAX कॉलबैक समाप्त होने के बाद मैं स्थिति संदेश कैसे प्रदर्शित कर सकता हूं? क्या इसके लिए कोई मॉड्यूल है?

जवाबों:


13

आप स्टेटस मैसेज रेंडर कर सकते हैं और उन्हें एओटर AJAX कमांड के रूप में भेज सकते हैं।

उदाहरण के लिए:

$commands = array();

// Add other commands

$commands[] = ajax_command_prepend('div#ajax-status-messages-wrapper', theme('status_messages'));

return array('#type' => 'ajax', '#commands' => $commands);

कम से कम यही तरीका है जब मैंने इस समस्या को हल किया जब मैंने इसका सामना किया।


आप एक उद्धारकर्ता हैं !!! : डी थैंक्यू इतना।
एसजीशॉ

वहाँ विषय ('status_messages') का क्या उपयोग है?
एलिसैलेयाह जूल 27'15

@Bangang बिकांग स्थिति संदेशों को प्रस्तुत करता है, वर्तमान स्थिति संदेशों के साथ HTML कोड लौटाता है।
sanzante

8

Drupal 8 के लिए

$response = new AjaxResponse();    
$status_messages = array('#type' => 'status_messages');
$messages = \Drupal::service('renderer')->renderRoot($status_messages);
if (!empty($messages)) {
  $response->addCommand(new PrependCommand('.your_selector', $messages));
}

return $response;

3

एजेक्स के साथ ड्रुपल 8 फॉर्म के लिए, टिम बोजमैन द्वारा जवाब दिया गया, लेकिन संदेश बिना स्टाइल के दिखाए गए। इसी से मेरा काम बना है:

$response = new AjaxResponse();
drupal_set_message($action);
$form['messages']['status'] = [
  '#type' => 'status_messages',
];
$response->addCommand(new InsertCommand(null, $form['messages']));

return $response;

0

मेरे लिए

$commands[] = ajax_command_remove('div.messages');
$commands[] = ajax_command_after('#main-content', theme('status_messages'));

काम किया। जहां # मुख्य-सामग्री मानक है, और हो सकता है कि आपको अपने विषय के एक्यूट मैसेज पोजीशन के लिए कस्टमाइज़ करना पड़े। (शायद आपको दूसरी विधि को ajax_command_append () या किसी अन्य में बदलना होगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.