Zend / PHP: Как отключить веб-страницу за всплывающими окнами? - PullRequest
0 голосов
/ 16 марта 2010

Я работаю над Zend Framework, PHP и JQuery. Я работаю над всплывающими окнами иногда. Когда на экране открыто какое-либо всплывающее окно, мы все равно можем щелкать ссылки на веб-странице за всплывающим окном, что вызывает неожиданное поведение. Как я могу отключить веб-страницу за всплывающими окнами. Я видел какое-то веб-приложение, в котором при появлении всплывающего окна веб-страница позади всплывающего окна становится теневой.

Я прочитал урок об этом. В каждом уроке ссылка используется для открытия диалогового окна, а специальный тег добавляется в тег привязки для модального окна. Но у меня есть другой случай, я должен открыть диалог о каком-то условии в действии.

Я проверяю условие в действии после публикации, как это:

$form = new Edit_Form( );
$this->view->form = $form;
$this->view->form->setAction($this->view->url());

$request = $this->getRequest();
if ( $request->isPost() ) {

   $values = $request->getParams();

   if( $values['edit'] ) {
        $this->view->openEditBox();
   }
}

Теперь отметьте view , чтобы увидеть, должен ли он открывать всплывающее окно редактирования или нет:

if( $this->openEditBox ){
  $jsonOutput ['content'] = '<div class="DialogBox" title="Edit">' . $this->form->render() . '</div>';
  echo Zend_Json::encode($jsonOutput);
}

'content' - это DIV на моей веб-странице. Любая идея? Спасибо

1 Ответ

4 голосов
/ 16 марта 2010

Это делается с помощью Javacript и называется Модальное окно .

Этого легко добиться с помощью компонента Dialog в JQueryUI . Другие реализации широко доступны .

$('.selector').dialog('option', 'modal', true);

Вы можете использовать ZendX_JQuery_View_Helper_DialogContainer, чтобы создать модальный диалог с ZF. Вы должны сначала включить библиотеку, так как она не является частью стандартного дистрибутива. Тогда вы можете использовать следующее в вашем представлении:

$this->dialogContainer('foo', 'I am a modal Dialog', array('modal' => true));

* Примечание: с этими помощниками не работал, поэтому приведенный выше фрагмент может потребовать корректировки

Использование dialogContainer довольно просто:

dialogContainer ($ id, $ content, $ params, $ attribs):
Создайте диалоговое окно, отображаемое при данном содержимом content.on. Если для опции 'autoOpen' установлено значение false, поле не будет отображаться при загрузке, но может быть показано с помощью дополнительной функции диалога («открыть») javascript. Подробности смотрите в документации по пользовательскому интерфейсу.

См. Руководство ZF для получения дополнительной информации о том, как настроить и использовать ZendX_JQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...