I am newbie . i want to register client information, it use drop down list for state from database table states.
My problem is that when i clik link to create client…a new dialog form open and displays nothing????
when i remove the dropdown code it works fine…but i want to use dropdown in field of state of client form.
clientcontroller.php (actioncreate() snippet in controller file of client.php)
public function actionCreate()
{
$model=new client;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['client']))
{
$model->attributes=$_POST['client'];
if($model->save())
{
if (Yii::app()->request->isAjaxRequest)
{
echo CJSON::encode(array(
'status'=>'success',
'div'=>"Client successfully added"
));
exit;
}
else
$this->redirect(array('view','id'=>$model->id));
}
}
if (Yii::app()->request->isAjaxRequest)
{
echo CJSON::encode(array(
'status'=>'failure',
'div'=>$this->renderPartial('_form', array('model'=>$model), true)));
exit;
}
else
$this->render('create',array('model'=>$model,));
}
In client/admin.php (a link is to create client,only snippet is here ).
<?php echo CHtml::link('Add New State', "", // the link for open the dialog
array(
'style'=>'cursor: pointer; font-size:20px; text-decoration: underline;',
'onclick'=>"{addstate(); $('#dialogstate').dialog('open');}"));
?>
</div><!-- add-form -->
<?php
$this->beginWidget('zii.widgets.jui.CJuiDialog', array( // the dialog
'id'=>'dialogstate',
'options'=>array(
'title'=>'Create Number Assignment',
'autoOpen'=>false,
'modal'=>true,
'width'=>550,
'height'=>470,
),
));
?>
<div class="divForForm"></div>
<?php $this->endWidget();?>
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'assignment-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'state',
'code',
'status',
array(
'class'=>'CButtonColumn',
),
),
));
?>
<script type="text/javascript">
// here is the magic
function addstate()
{
<?php echo CHtml::ajax(array(
'url'=>array('states/create'),
'data'=> "js:$(this).serialize()",
'type'=>'post',
'dataType'=>'json',
'success'=>"function(data)
{
if (data.status == 'failure')
{
$('#dialogstate div.divForForm').html(data.div);
// Here is the trick: on submit-> once again this function!
$('#dialogstate div.divForForm form').submit(addstate);
}
else
{
$('#dialogstate div.divForForm').html(data.div);
setTimeout(\"$('#dialogstate').dialog('close') \",3000);
}
} ",
))
?>;
return false;
}
</script>
plz help in dropdown list to generate?