zii.widgets.jui.CJuiDialog
ボックスに ajax 経由でコントローラーにフォームを送信させています。ただし、ポストの存在についてコントローラーをテストするとif(isset($_POST['Item']))
。存在せず、その理由がよくわかりません。この投稿http://www.yiiframework.com/wiki/145/cjuidialog-for-create-new-model/
を自分のニーズに合わせて調整しています。
モデル内のフォームは次のとおりです。
<div class="form">
<form id="email-item-form" action="/www.mywebsite.ca/item/1/my-first-item" method="post"> <div id="email-item-success" class="label label-success"></div>
<div id="email-item-failure" class="label label-important"></div>
<div class="row">
<label for="Item_email_item">Email this item to:</label> <input placeholder="Send to..." name="Item[email_item]" id="Item_email_item" type="text" /> <div class="errorMessage" id="Item_email_item_em_" style="display:none"></div> </div><!-- row -->
<div class="row">
<label for="Item_email_item_sender">Email sent from:</label>
<input placeholder="Sent from..." name="Item[email_item_sender]" id="Item_email_item_sender" type="text" /> <div class="errorMessage" id="Item_email_item_sender_em_" style="display:none"></div> </div><!-- row -->
<br />
</form>
コントローラ
public function actionEmail($id)
{
if(isset($_POST['Item']))
{
// Rest of code
}
}
データは を介して送信されCHtml::ajax
、宣言されてい'type'=>'post'
ます。このプロセスは、アイテム ID をコントローラーに送信し、応答をモーダル ボックスに送り返すという点で機能しています。$_POST['Item']
設定するためにの存在を確認しようとしたところから問題が発生しました$model->attributes=$_POST['Item'];
これを解決するための助けがあれば、ありがとうございます。
CHtml::ajax() を表示するように更新
var url = '<?php echo Yii::app()->createUrl("item/email", array("id"=>$model->id)); ?>';
<?php echo CHtml::ajax(array(
'url'=>'js:url',
'data'=> "js:$(this).serialize()",
....// Rest of code