我正在編輯嘗試將我的主要問題放在此帖的開頭: 1)我坐在我的客戶/喜好頁面更新信息形式 2)我想添加一個小部件到我的可用小部件列表中,所以我需要打開小部件/ addWidget頁面/表單來添加一個新小部件(注意我仍在我當前的客戶/偏好頁面/表單中工作,所以我需要在widgets/addWidget頁面/表單中添加一個新的widget後繼續這個頁面。 3)我選擇一個鏈接去widgets/addWidget,並且我有jQuery對話框,在對話框中打開這個鏈接。 addWidget表單並提交按鈕 4)在對話框彈出窗體中添加newWidget後,我想提交newWidget(addWidget的代碼位於w idgets/addWidget控制器/操作,不在客戶/優先選擇操作中)Zend Framework - 在Zend控制器/動作中使用jquery對話框彈出窗體
問題:addWidget表單操作轉到widgets/addWidget,因此當我在對話框中提交addWidget表單時,它將我帶離當前客戶/首選項頁面
問題1)什麼是賦予這種情況下彈出一個形式,另一個控制器/動作提交該表格的正確/最佳途徑,但隨後恢復我的電流控制器/行動? 問題2)我是否應該將所有窗體和代碼從窗口小部件/ addWidget控制器操作移動到我的現有客戶/首選項操作中? (這似乎是錯誤的方法)
我已經研究了jQuery文檔,Zend文檔,並用trusty Google和stackoverflow搜索了其他線程,但我仍然在努力找出正確的方式來使它與Zend一起工作框架和彈出窗體,如jQuery對話框。
我有一個工作Zend動作/控制器,使用Zend窗體和視圖來顯示和處理我的表單。我也一直能夠使用jQuery的對話框彈出一個窗口,當我點擊鏈接到控制器/動作。
我的問題是以正確的方式讓對話框顯示錶單並仍然能夠提交和處理頁面。如果我只在對話框中加載#content標籤,表單和提交按鈕出現在對話框中,但提交按鈕不再起作用。如果我讓對話框打開完整的頁面(不只是#內容)現在的形式將正確處理,但表單提交設置到我的處理動作的頁面,這樣的形式提交,並帶我離開原來的頁面而是轉向真正的控制器/操作頁面。
在我customerController我有一個preferencesAction一個顧客可以選擇從窗口小部件列表的小部件。當客戶需要將新小部件添加到列表中時,我想以彈出窗體的形式從WidgetsController打開addWidgetAction。我想在彈出窗體中添加窗口小部件,將窗體提交給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的操作頁面,但不要求使用頁眉,頁腳,等整個佈局我還需要了解如何處理形式對話框彈出而不會離開我的原始頁面,在那裏彈出連接。
謝謝您的協助!
你能否請澄清你的問題....確切地告訴你要什麼 – 2011-02-06 05:12:05
以及看到更新 – 2011-02-06 07:43:29