Я редактирую, чтобы попытаться поставить свой основной вопрос в начале этого поста:
1) Я сижу на странице обновления моих клиентов / предпочтений в форме
2) Я хочу добавить виджет в свой список доступных виджетов, поэтому мне нужно открыть страницу / форму виджетов / addWidget, чтобы добавить новый виджет (обратите внимание, что я все еще работаю на своей странице / форме текущих клиентов / предпочтений, поэтому я нужно продолжить с этой страницы после добавления нового виджета в страницу / форму widgets / addWidget.
3) Я выбираю ссылку, чтобы перейти на widgets / addWidget, и у меня есть диалоговое окно jQuery, открывающее эту ссылку в диалоге с формой addWidget и кнопкой отправки
4) после добавления newWidget во всплывающую форму диалога я хочу отправить newWidget (код для addWidget находится в контроллере / действии widgets / addWidget, а не в действии клиентов / предпочтений)
Проблема: действие формы addWidget переходит к widgets / addWidget, поэтому, когда я отправляю форму addWidget в диалоговом окне, она забирает меня со страницы моих текущих клиентов / предпочтений
Вопрос 1) Как правильно / лучше всего использовать данный сценарий для вызова формы в другом контроллере / действии, чтобы отправить эту форму, но затем возобновить мой текущий контроллер / действие?
Вопрос 2) я должен переместить всю свою форму и код из действия контроллера widgets / addWidget в мои существующие действия клиентов / предпочтений? (это кажется неправильным подходом)
Я исследовал документацию jQuery, документацию Zend и искал другие потоки с помощью надежного Google и stackoverflow, но я все еще пытаюсь найти правильный способ заставить его работать с Zend Framework и всплывающими формами, такими как диалог jQuery.
У меня есть работающий Zend action / контроллер, который использует Zend Form и view для отображения и обработки моей формы. Я также смог использовать диалоговое окно jQuery для всплывающего окна, когда я щелкаю ссылку на этот контроллер / действие.
Моя проблема связана с правильным способом заставить диалоговое окно отображать форму и при этом иметь возможность отправлять и обрабатывать страницу. Если я загружаю только тег #content в диалоговом окне, в диалоговом окне появляются кнопка формы и отправки, но кнопка отправки больше не работает. Если я позволю диалоговому окну открыть полную страницу (не только #content), то теперь форма будет обрабатываться правильно, но отправка формы настроена для перехода на мою страницу действий для обработки, поэтому форма отправляется и забирает меня с исходной страницы. и вместо реального контроллера / страницы действий.
В моем customerController у меня есть действие action, где клиент может выбрать виджет из списка виджетов. Когда клиенту нужно добавить новый виджет в список, я хочу открыть addWidgetAction из WidgetsController во всплывающей форме. Я хочу добавить виджет во всплывающую форму, отправить форму в addWidgetAction и вернуться на страницу клиентов / предпочтений, на которой я уже работал (с новым добавленным виджетом, доступным в моем списке для выбора).
//CustomerController
public function preferencesAction(){
//this is where I click a link to /widgets/addWidget and use jQuery dialog for form
}
//Customer preferences.phtml
<script>
$(document).ready(function() {
$('#add-link').each(function() {
var $link = $(this);
var $dialog = $('<div></div>')
.load($link.attr('href'))
.dialog({
autoOpen: false,
title: $link.attr('title'),
width: 600,
height: 500,
buttons: {
"Add Widget": function(){
$("#AddWidget").submit();
},
"Cancel": function(){
$(this).dialog("close");
}
}
});
$link.click(function() {
$dialog.dialog('open');
return false;
});
});
});
</script>
<a id="add-link" href='<?php echo $this->url(array('controller' => 'widgets',
'action' => 'addwidget')); ?>'>Add a Widget...</a>
//WidgetsController
public function addWidgetAction(){
// display form to add widget
// process form, validate, add to widgets table
$baseUrl = $this->getRequest()->getBasePath();
$action = $baseUrl . '/widgets/addWidget';
$form = new Form_Widget();
$form->setName('Add Widge')
->setAction($action);
}
Мне нужно понять, как получить диалоговое окно для загрузки моей страницы действий Zend для обработки формы, но не требуется весь макет с верхним, нижним и нижним колонтитулом и т. Д. Мне также нужно понять, как обрабатывать форму во всплывающем окне диалога без отходя от моей исходной страницы, с которой было связано всплывающее окно.
Спасибо за вашу помощь!