Ich bin Neuling auf die schöne Yii Framework.Ich ging durch die Wiki-Dokumentation von Yii.Ich habe einen Link http://www.yiiframework.com/wiki/72/cjuidialog-and-ajaxsubmitbutton?, wo ich etwas, das ich brauchte.So machte ich den Prozess wie Das tutorial.Andernfalls kann ich den job_name aus der Person View-Datei speichern.Fehler in Yii Drop-Down-Link Option
Meine Datenbank war wie diese
==== Job ====
id
job_name
job_description
created_at
updated_at
==== Person ====
id
job_id
person_name
description
created_at
updated_at
Meine _form.php für Person war wie diese
<?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>
Und die actionAddnew() in Job-Steuerung ist wie folgt
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);
}
}
Laut Tutorial habe ich zwei weitere Dateien namens createDialog.php und _formDialog.php in der Jobansicht erstellt r. Der Code für createDialog.php wie dieser ist
<?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');?>
Der Code für _formDialog.php ist wie diese
<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>
Also, wo ich in dem falsch bin? Jede mögliche Hilfe und Anregungen sehr spürbar sein.
Ihre Frage so schrecklich weit gefasst ist, dass es nicht beantwortet werden können. Was bedeutet "kein Erfolg"? Sei genauer. * Weg * spezifischer. – Jon
Ich habe die Frage aktualisiert.So möchte ich den Jobnamen aus der Personenmodell-Ansichtsdatei mit dem Ajax-Link speichern, der oben über den Link beschrieben wurde. – NewUser