এজেএক্সের সাথে স্থিতি বার্তা


11

আমি স্ট্যান্ডার্ড এজেএক্স ফ্রেমওয়ার্কের মাধ্যমে ড্রুপাল 7 এ একটি এজেএক্স কল করছি। আমার সমস্যাটি হ'ল যখন এজেএক্স কলব্যাক দ্বারা স্থিতি বার্তা সেট করা হয়, তখন এটি সহজেই হারিয়ে যায় (বা পৃষ্ঠার পরবর্তী পুনরায় লোডে প্রদর্শিত হবে)। পৃষ্ঠাটি পুনরায় লোড না করে, এজেএক্স কলব্যাক চলমান শেষ হওয়ার পরে আমি কীভাবে স্থিতি বার্তাগুলি প্রদর্শিত করতে পারি? এর জন্য কি কোনও মডিউল আছে?

উত্তর:


13

আপনি স্থিতি বার্তাগুলি রেন্ডার করতে পারেন এবং এহোস্টার এজেএক্স কমান্ড হিসাবে তাদের প্রেরণ করতে পারেন।

উদাহরণ স্বরূপ:

$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') এর ব্যবহার কী?
alyssaeliyah

@ বেবাং বাকিকং স্ট্যাটাস বার্তাগুলি রেন্ডার করে, বর্তমান স্থিতি বার্তার সাথে এইচটিএমএল কোড ফিরিয়ে দেয়।
সানজান্ট

8

ড্রুপাল 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

AJAX সহ দ্রুপাল 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'));

কাজ করছে. যেখানে # মূল বিষয়বস্তু স্ট্যান্ডার্ড, এবং আপনার থিমের অ্যাকিউটাল বার্তাগুলির অবস্থানের জন্য কাস্টমাইজ করা দরকার। (সম্ভবত আপনাকে দ্বিতীয় পদ্ধতিটি আজাক্স_কম্যান্ড_অ্যাপেন্ডে পরিবর্তন করতে হবে ) ( বা অন্য)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.