私の最初の質問は、この投稿の冒頭に置いてください: 1)私は自分の顧客/環境設定ページで情報を更新していますフォーム 2)利用可能なウィジェットのリストにウィジェットを追加したいので、新しいウィジェットを追加するためにwidgets/addWidgetページ/フォームを開く必要があります(私は現在の顧客/設定ページ/フォームで作業中ですウィジェット/ addWidgetページ/フォームに新しいウィジェットを追加した後、このページを続行する必要があります。 3)ウィジェット/ addWidgetに行くリンクを選択し、jQueryダイアログでこのリンクをaddWidgetフォームとsubmitボタン 4)ダイアログポップアップフォームでnewWidgetを追加した後、newWidgetを送信したい(addWidgetのコードはw idgets/addWidgetコントローラ/アクション、customers/preferencesアクションではありません)Zend Framework - Zendコントローラ/アクションのポップアップフォームにjqueryダイアログを使用する
問題:addWidgetフォームアクションがwidgets/addWidgetに移動するので、ダイアログボックスでaddWidgetフォームを送信すると、現在の顧客から私が離れます/ preferencesページ
質問1)他のコントローラ/アクションでフォームをポップアップしてフォームを送信し、現在のコントローラ/アクションを再開するには、このシナリオで与えられた適切な/最良の方法は何ですか? 質問2)私のフォームとコードをすべてwidgets/addWidgetコントローラアクションから既存の顧客/設定アクションに移動する必要がありますか?
私はjQueryのドキュメント、Zendドキュメントを調べて、信頼できるGoogleとstackoverflowで他のスレッドを検索しましたが、私はまだこれをZendと連携させる正しい方法を見つけ出すのに苦労しています。フレームワークとjQueryダイアログなどのポップアップフォーム
Zendフォームとビューを使用してフォームを表示および処理するZendアクション/コントローラがあります。私はまた、そのコントローラ/アクションへのリンクをクリックするとjQueryダイアログを使用してウィンドウをポップアップすることもできました。
私の問題は、ダイアログをフォームを表示しても、ページを送信して処理できる適切な方法です。ダイアログで#contentタグだけを読み込むと、フォームと送信ボタンがダイアログボックスに表示されますが、送信ボタンは機能しなくなります。私がダイアログボックスに(#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アクションページをロードするためのダイアログを取得する方法を理解する必要がありますが、その他のヘッダー、フッター、と全体のレイアウトを必要とせずに、私はまた、フォームを処理する方法を理解する必要がありますダイアログポップアップは、ポップアップがリンクされていた元のページから離れずに移動します。
ありがとうございました!
あなたが質問を明確にしてください....あなたが望むものを正確に教えてください –
よく見る更新 –
よく怒らないでくださいしかし、私は提案を持っています –