Yii Framework Forum: AjaxForm with customized CGridView - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

AjaxForm with customized CGridView it doesn't replace the view! Rate Topic: -----

#1 User is offline   Alarice Chan 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 12
  • Joined: 23-September 10

Posted 17 January 2011 - 09:25 PM

The form works but it throws the renderPartial result instead of displaying the main form and the table.

View Code:

<?php

 $course_options = array();
    $course_options[''] = "";
    $courses = AlumniCourses::model()->findAll();

    $add_cr_opts = "<option value=></option>";
    $add_yr_opts = "<option value=></option>";

    $copts = array();

    foreach ($courses as $course) {
        $copts[$course->course_id] = $course->course;
        $add_cr_opts .= "<option value=\"$course->course_id\">$course->course</option>";
    }

    $year_options = array();
    $cyr = date('Y');
    for($yr = 1993; $yr < $cyr; $yr++){
        $year_options[$yr] = $yr;
        $add_yr_opts .= "<option value=\"$yr\">$yr</option>";
    }

echo $msg;

$this->widget('ext.ajaxedit.FormGridView', array(
    'dataProvider' => new CActiveDataProvider('AlumniCmatch', array('criteria' => array(
        'select' =>'*', 'condition'=>'alumni_id=:alumniId', 'params'=> array(':alumniId'=>$alumni_id)
     ))),
    'id'=>'courseAlumniTable',
    'formId'=>'addCourseForm',
    'formAction'=>'index.php?r=alumni/courseEdit',
    'ownerKeyName'=> 'alumni_id',
    'ownerKey' => $alumni_id,
     'columns'=> array(
         array('class' => 'ext.ajaxedit.grid.HiddenFormColumn'),
         array( 'class' =>'ext.ajaxedit.grid.RelationColumn', 'textValues'=> $copts,'name' => 'course_id'),
         array( 'class' =>'ext.ajaxedit.grid.RelationColumn', 'textValues'=> $year_options, 'name' => 'yr_grad'),
         array('class' => 'ext.ajaxedit.grid.CustomButtonColumn', 'template'=> '{delete}', 'primaryKeyName'=>'entry_id')
     )
));

$this->widget('ext.ajaxform.JAjaxForm',
     array('formId'=>'addCourseForm',
        'options'=>array( 'target' => '#courseAlumniTable',
            'replaceTarget'=>true)
     )
);


Action Code:
 public function actionCourseEdit() {
        $msg = '';
        if (isset($_POST['entry_id'])) {
            if (!preg_match('/[\\d]+/', $_POST['entry_id'])) {
                $msg = '<div class=error_msg>Invalid submitted data.</div>';
            } else {
                $amatch = AlumniCmatch::model()->findByPk($_POST['entry_id']);
                if (is_null($amatch)) {
                    $msg = '<div class=error_msg>Invalid submitted data.</div>';
                } else {
                    $amatch->course_id = $_POST['course_id'];
                    $amatch->yr_grad = $_POST['yr_grad'];
                    if ($amatch->save()) {
                        $msg = "<div class=success_msg>Edit has been successfully saved.</div>";
                    } else {
                        $msg = "<div class=error_msg>Invalid submitted data.</div>";
                    }
                }
            }
        } else {
            $amatch = new AlumniCmatch();
            $amatch->alumni_id = $_POST['alumni_id'];
            $amatch->course_id = $_POST['course_id'];
            $amatch->yr_grad = $_POST['yr_grad'];
            if ($amatch->save()) {
                $msg = "<div class=success_msg>New Entry has been successfully saved.</div>";
            } else {
                $msg = "<div class=error_msg>Invalid submitted data.</div>";
            }
        }
        if (preg_match('/[\\d]+/', $_POST['alumni_id']))
            $this->renderPartial('_coursesTable', array('msg'=>$msg, 'alumni_id' => $_POST['alumni_id']));
    }


Main Form View Code:

<div class="form">


<?php $form = $this->beginWidget('GxActiveForm', array(
	'id' => 'alumni-form',
	'enableAjaxValidation' => true,
));
?>

	<p class="note">
		<?php echo Yii::t('app', 'Fields with'); ?> <span class="required">*</span> <?php echo Yii::t('app', 'are required'); ?>.
	</p>

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

		<div class="row">
		<?php echo $form->labelEx($model,'name'); ?>
		<?php echo $form->textField($model, 'name', array('maxlength' => 255)); ?>
		<?php echo $form->error($model,'name'); ?>
		</div><!-- row -->
		<div class="row">
		<?php echo $form->labelEx($model,'current_position'); ?>
		<?php echo $form->textField($model, 'current_position', array('maxlength' => 255)); ?>
		<?php echo $form->error($model,'current_position'); ?>
		</div><!-- row -->
		<div class="row">
		<?php echo $form->labelEx($model,'company'); ?>
		<?php echo $form->textField($model, 'company', array('maxlength' => 255)); ?>
		<?php echo $form->error($model,'company'); ?>
		</div><!-- row -->
		<div class="row">
		<?php echo $form->labelEx($model,'address'); ?>
		<?php echo $form->textField($model, 'address', array('maxlength' => 255)); ?>
		<?php echo $form->error($model,'address'); ?>
		</div><!-- row -->
		<div class="row">
		<?php echo $form->labelEx($model,'awards'); ?>
		<?php echo $form->textArea($model, 'awards'); ?>
		<?php echo $form->error($model,'awards'); ?>
		</div><!-- row -->
		<div class="row">
		<?php //echo $form->labelEx($model,'pic'); ?>
		<?php //echo $form->checkBox($model, 'pic'); ?>
		<?php //echo $form->error($model,'pic'); ?>
		</div><!-- row -->

<?php
echo GxHtml::Button(Yii::t('app', 'Cancel'), array(
			'submit' => array('alumni/admin')
		));
echo GxHtml::submitButton(Yii::t('app', 'Save'));
$this->endWidget();
?>
                <br><br>
</div>
<label>Courses Taken</label>
<br>

    <?php
        $this->renderPartial('_coursesTable', array('msg'=>'','alumni_id' => $model->alumni_id));
    ?>

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users