2012-04-02 46 views
-1

我是美化Yii Framework的新手。我正在浏览Yii的wiki文档。我得到了一个链接http://www.yiiframework.com/wiki/72/cjuidialog-and-ajaxsubmitbutton?,我得到了一些我需要的东西。所以我让所有的过程都像本教程。但仍然无法从人员视图文件中保存job_name。Yii下拉菜单中的错误添加链接选项

我的数据库是这样

==== Job ==== 
    id 
    job_name 
    job_description 
    created_at 
    updated_at 

    ==== Person ==== 
    id 
    job_id 
    person_name 
    description 
    created_at 
    updated_at 

我对人_form.php这个是这样

<?php echo $form->errorSummary($model); ?> 
    <div class="row"> 
    <div id="job"> 
    <?php echo $form->dropDownList($model,'job_id',CHtml::listData(Job::model()->findAll(),'job_id','description'),array('prompt'=>'Select')); ?> 
    <?php echo CHtml::ajaxLink(Yii::t('job','Create Job'),$this->createUrl('job/addnew'),array(
    'onclick'=>'$("#jobDialog").dialog("open"); return false;', 
    'update'=>'#jobDialog' 
),array('id'=>'showJobDialog'));?> 
    <div id="jobDialog"></div> 
    </div> 
    </div> 

而且actionAddnew()在作业控制器是这样

public function actionAddnew() 
    { 
    $model=new Job; 
    // Ajax Validation enabled 
    $this->performAjaxValidation($model); 
    // Flag to know if we will render the form or try to add 
    // new jon. 
    $flag=true; 
    if(isset($_POST['Job'])) 
    { 
     $flag=false; 
     $model->attributes=$_POST['Job']; 
     if($model->save()) 
     { 
     //Return an <option> and select it 
     echo CHtml::tag('option',array ('value'=>$model->jid,'selected'=>true),CHtml::encode($model->jdescr),true); 
     } 
    } 
     if($flag) 
     { 
     Yii::app()->clientScript->scriptMap['jquery.js'] = false; 
     $this->renderPartial('createDialog',array('model'=>$model,),false,true); 
     } 
    } 

根据教程我做了另外两个文件,称为createDialog.php和_formDialog.php作业查看folde河 为createDialog.php的代码是这样的

<?php 
    $this->beginWidget('zii.widgets.jui.CJuiDialog',array(
    'id'=>'jobDialog', 
    'options'=>array(
    'title'=>Yii::t('job','Create Job'), 
    'autoOpen'=>true, 
    'modal'=>'true', 
    'width'=>'auto', 
    'height'=>'auto', 
), 
)); 
    echo $this->renderPartial('_formDialog', array('model'=>$model)); ?> 
    <?php $this->endWidget('zii.widgets.jui.CJuiDialog');?> 

为_formDialog.php的代码是这样的

<div class="form" id="jobDialogForm"> 

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'job-form', 
    'enableAjaxValidation'=>true, 
)); 
//I have enableAjaxValidation set to true so i can validate on the fly the 
?> 

    <p class="note">Fields with <span class="required">*</span> are required.</p> 

    <?php echo $form->errorSummary($model); ?> 

    <div class="row"> 
     <?php echo $form->labelEx($model,'jid'); ?> 
     <?php echo $form->textField($model,'jid',array('size'=>60,'maxlength'=>90)); ?> 
     <?php echo $form->error($model,'jid'); ?> 
    </div> 

    <div class="row"> 
     <?php echo $form->labelEx($model,'jdescr'); ?> 
     <?php echo $form->textField($model,'jdescr',array('size'=>60,'maxlength'=>180)); ?> 
     <?php echo $form->error($model,'jdescr'); ?> 
    </div> 

    <div class="row buttons"> 
     <?php echo CHtml::ajaxSubmitButton(Yii::t('job','Create Job'),CHtml::normalizeUrl(array('job/addnew','render'=>false)),array('success'=>'js: function(data) { 
         $("#Person_jid").append(data); 
         $("#jobDialog").dialog("close"); 
        }'),array('id'=>'closeJobDialog')); ?> 
    </div> 

<?php $this->endWidget(); ?> 

</div> 

那么,我错了,在这?任何帮助和建议将是非常可观的。

+0

你的问题是这么可怕广泛,它不能回答。 “没有取得任何成功”是什么意思?更加详细一些。 *方式*更具体。 – Jon 2012-04-03 09:40:12

+0

我已经更新了这个问题。顺便说一下,我想用上面描述的链接的ajax链接从人员模型视图文件中保存作业名称。 – NewUser 2012-04-03 12:49:31

回答

0

以下内容添加到您的Job型号:

public function rules() { 
    return array(
    ... 
    array('job_name', 'safe'), 
    ... 
); 
}