Полезные заметки по веб-программированию PHP, Symfony, Propel, Doctrine, JS, jQuery, ExtJS, HTML, CSS, …

Multiple Ext.Msg.alerts at a time

Posted on Ноябрь 16, 2011


Поивилась необходимость показать несколько алертов одновременно, тоесть один за другим. Естественно, первым делом захотелось написать следующий код:

  Ext.Msg.alert('title1', 'message1');
  Ext.Msg.alert('title2', 'message2');

Но результат немного разочаровал, появлялось только последнее сообщение.
Как оказалось, Ext.Msg.alert является синглтоном. Для правильного решения данной задачи, необходимо повесить обработчик на нажание кнопки ОК.

  var msg_alert = function(messages){
    if (messages != undefined){
      var message = messages.shift();
      if (message != undefined){
        Ext.Msg.alert(message.title, message.message, function(){
          msg_alert(messages);
        });
      }
    }
  }
 
  msg_alert(messages);

Где messages - это массив наших сообщений, например, полученный таким способом:

  var messages = new Array();
  <?php foreach ($messages as $message): ?>
    messages.push({
      title:   '<?php echo $message->title ?>',
      message: '<?php echo $message->message ?>'
    });
  <?php endforeach; ?>

Комментарии (0) Пинги (0)

Пока нет комментариев.


Leave a comment

Нет обратных ссылок на эту запись.