X-Editable Al Crear Un Registro

Implementando la creacion de un registro con esta extension

web referencia vitalets.github.io/x-editable/docs.html#newrecord

web referencia x-editable.demopage.ru/index.php?r=site/widgets#EditableDetailView

No me funciona, ya logre la edicion, eliminar, buscar, modificar; pero me falta crear, solicito su valiosa ayuda.

Me ha fascinado Yii, llevo poco, pero este error ya llevo dos semanas y no encuentro porque no graba.

Notas:

Tabla usuarios

key usuariosId int autoincremento (x-editable no me carga este campo supongo que lo asignara automaticamente).

[color="#0000FF"]Texto del UsuariosController[/color]

//FUNCION PARA CREAR UN REGISTRO DE XEDITABLE

public function actionCreateUser()

{

if(Yii::app()->request->isPostRequest) {


	$model = new Usuarios;


	$model->attributes = $_POST;


	if($model->save()) {


    	echo CJSON::encode(array('usuariosId' => $model->primaryKey));


	} else {


    	$errors = array_map(function($v){ return join(', ', $v); }, $model->getErrors());


    	echo CJSON::encode(array('errors' => $errors));


	}


} else {


throw new CHttpException(400, 'Invalid request');  


}

}

[color="#0000FF"][b]

Texto de la vista create.php[/b][/color]

<script>

&#036;('#save-btn').click(function() {


&#036;('.myeditable').editable('submit', { 


url: &#036;this-&gt;createUrl('Usuarios/InvocarUsandoAjax'),


ajaxOptions: {


   	dataType: 'json' //assuming json response


},       	


success: function(data, config) {


   	if(data &amp;&amp; data.id) {  //record created, response like {&quot;id&quot;: 2}


       	//set pk


       	&#036;(this).editable('option', 'pk', data.id);


       	//remove unsaved class


       	&#036;(this).removeClass('editable-unsaved');


       	//show messages


       	var msg = 'New user created&#33; Now editables submit individually.';


       	&#036;('#msg').addClass('alert-success').removeClass('alert-error').html(msg).show();


       	&#036;('#save-btn').hide(); 


       	&#036;(this).off('save.newuser');                 	


   	} else if(data &amp;&amp; data.errors){ 


       	//server-side validation error, response like {&quot;errors&quot;: {&quot;username&quot;: &quot;username already exist&quot;} }


       	config.error.call(this, data.errors);


   	}           	


},


error: function(errors) {


   	var msg = '';


   	if(errors &amp;&amp; errors.responseText) { //ajax error, errors = xhr object


       	msg = errors.responseText;


   	} else { //validation error (client-side or server-side)


       	&#036;.each(errors, function(k, v) { msg += k+&quot;: &quot;+v+&quot;&lt;br&gt;&quot;; });


   	} 


   	&#036;('#msg').removeClass('alert-success').addClass('alert-error').html(msg).show();


}

});

});

&#036;('#reset-btn').click(function() {


&#036;('.myeditable').editable('setValue', null)  //clear values


	.editable('option', 'pk', null)      	//clear pk


	.removeClass('editable-unsaved');    	//remove bold css


           	


&#036;('#save-btn').show();


&#036;('#msg').hide();            	

});

</script>

<?php

$this->breadcrumbs = array(

&#036;model-&gt;label() =&gt; array('index'),


Yii::t('app', 'Create'),

);

$this->menu = array(

array('label'=&gt;Yii::t('app', 'List') . ' ' . &#036;model-&gt;label(), 'url' =&gt; array('index')),


array('label'=&gt;Yii::t('app', 'Manage') . ' ' . &#036;model-&gt;label(), 'url' =&gt; array('admin')),

);

?>

<h1><?php echo Yii::t(‘app’, ‘Create’) . ’ ’ . GxHtml::encode($model->label()); ?></h1>

<?php //METODO ANTIGUO

$this->renderPartial(’_form’, array(

	'model' =&gt; &#036;model,


	'buttons' =&gt; 'create'));

?>

<form class="form-inline editableform">

&lt;div id=&quot;msg&quot; class=&quot;alert hide&quot;&gt;&lt;/div&gt;


&lt;div class=&quot;control-group&quot;&gt;

<?php

//echo Yii::app()-&gt;basePath;

$model= new Usuarios;

&#036;this-&gt;widget('ext.editable.EditableDetailView', array(


'data'   	=&gt; &#036;model,


'id'=&gt;'user-details',


//you can define any default params for child EditableFields 


'url'    	=&gt; &#036;this-&gt;createUrl('Usuarios/CreateUser'), //common submit url for all fields


'params' 	=&gt; array('YII_CSRF_TOKEN' =&gt; Yii::app()-&gt;request-&gt;csrfToken), //params for all fields


'emptytext'  =&gt; 'Campo Vacio',


'attributes' =&gt; array(


	array(


    	'name' =&gt; 'usuariosId',

/* ‘htmlOptions’ => array (

        	'class'  =&gt;  'neweditable' , 


        	'rel'  =&gt;  'Model_result_'  . &#036;model -&gt; usuariosId , 


        	'data-pk'  =&gt; &#036;model -&gt; usuariosId,) */


    	


	),





	array(


    	'name' =&gt; 'cedula',


    	'editable' =&gt; array(


        	'type'   	=&gt; 'text',


        	'inputclass' =&gt; 'input-large',


        	'emptytext'  =&gt; 'special emptytext', 


        	


        	'validate'   =&gt; 'function(value) {


            	if(&#33;value) return &quot;Cedula es requerido&quot;;


        	}',





    		//'onblur'=&gt;'cancel',


    	)


	),





	array(


    	'name' =&gt; 'nombres',


    	'editable' =&gt; array(


        	'type'   	=&gt; 'text',


        	'inputclass' =&gt; 'input-large',


        	'emptytext'  =&gt; 'special emptytext',            	


    	'validate' =&gt; 'js: function(value) {


			  if (&#036;.trim(value) == &quot;&quot;) 


				return &quot;Nombre es requerido&quot;;


			}'


    	)


	),





	array(


    	'name' =&gt; 'apellidos',


    	'editable' =&gt; array(


        	'type'   	=&gt; 'text',


        	'inputclass' =&gt; 'input-large',


        	'emptytext'  =&gt; 'special emptytext',            	


        	'validate'   =&gt; 'function(value) {


            	if(&#33;value) return &quot;Apellido es requerido&quot;;


        	}'


    	)


	),








array(


    	'name' =&gt; 'fnacimiento',


    	'title'=&gt;'Ingresar Fecha de Nacimiento',


    	'editable' =&gt; array(


        	'type'   	=&gt; 'date',


        	'viewformat' =&gt; 'dd/mm/yyyy',


        	'options'=&gt;array('language'=&gt;'en'),  //PARA COLOCAR TODO EN ESPAÑOL





    	)


	),





	array(


    	'name' =&gt; 'finicio',


    	'title'=&gt;'Ingresar Fecha de Inicio',


    	'editable' =&gt; array(


        	'type'   	=&gt; 'date',


        	'viewformat' =&gt; 'dd/mm/yyyy',


    	)


	),





	array(


    	'name' =&gt; 'email',


    	'editable' =&gt; array(


        	'type'   	=&gt; 'text',


        	'inputclass' =&gt; 'input-large',


        	'title'=&gt;'Ingresar email',


        	'validate'   =&gt; 'function(value) {


            	if(&#33;value) return &quot;email es requerido&quot;;


        	}'


    	)


	),

array(

    	'name' =&gt; 'usuario',


    	'editable' =&gt; array(


        	'type'   	=&gt; 'text',


        	'inputclass' =&gt; 'input-large',


        	'title'=&gt;'Ingresar Usuario',


        	'validate'   =&gt; 'function(value) {


            	if(&#33;value) return &quot;Usuario es requerido&quot;;


        	}'


    	)


	),

array(

    	'name' =&gt; 'clave',


    	'editable' =&gt; array(


        	'type'   	=&gt; 'text',


        	'inputclass' =&gt; 'input-large',


        	'title'=&gt;'Ingresar Clave',


        	'url'=&gt;'Usuarios/createUser1',


        	'validate'   =&gt; 'function(value) {


            	if(&#33;value) return &quot;Clave es requerido&quot;;


        	}',


    	)


	),





	array( //select loaded from ajax.


    	'name' =&gt; 'FK_perfilesId',


    	'editable' =&gt; array(


        	'type'   =&gt; 'select',


        	'title'=&gt;'Perfil del Usuario',


        	'source' =&gt; CHtml::listData(Perfiles::model()-&gt;findAll(),'perfilesId','nombre')


    	)


	),





	array( //select loaded from ajax.


    	'name' =&gt; 'cambio',


    	'editable' =&gt; array(


        	'type'   =&gt; 'select',


        	'title'=&gt;'Debe Cambiar la Clave',


        	'source' =&gt; 	array('0'=&gt;'Inactivo','1'=&gt;'Activo'), 


    	)


	),





	array( //select loaded from ajax.


    	'name' =&gt; 'activo',


    	'editable' =&gt; array(


        	'type'   =&gt; 'select',


        	'title'=&gt;'Estado del Usuario',


        	'source' =&gt; 	array('0'=&gt;'Inactivo','1'=&gt;'Activo'), 


    	)


	),    	








)


));//&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;

?>

<?php

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

?>

</div><div class="editable-buttons">

<button id="save-btn" class="btn btn-primary">Save</button> <!–//hide–>

<button id="reset-btn" class="btn">Cancelar</button>

</div>

 	&lt;div class=&quot;editable-error-block&quot;&gt;


 		





 	&lt;/div&gt;

</form>

<?php if($model->isNewRecord) {

	Yii::app()-&gt;clientScript-&gt;registerScript('new-user', '


    	&#036;(&quot;#save-btn&quot;).click(function() {


        	&#036;(this).parent().parent().find(&quot;.editable&quot;).editable(&quot;submit&quot;, {


            	url: &quot;'.&#036;this-&gt;createUrl('Usuarios/CreateUser').'&quot;,


            	data: '.CJSON::encode(array('YII_CSRF_TOKEN' =&gt; Yii::app()-&gt;request-&gt;csrfToken)).',


            	ajaxOptions: { dataType: &quot;json&quot; },                	


            	success: function(data, config) {


                	if(data &amp;&amp; data.id) {


                    	&#036;(this).editable(&quot;option&quot;, &quot;pk&quot;, data.id);


                    	&#036;(this).removeClass(&quot;editable-unsaved&quot;);


                    	&#036;(&quot;#msg&quot;).removeClass(&quot;alert-error&quot;).addClass(&quot;alert-success&quot;)


                             	.html(&quot;User created&#33; Now you can update it.&quot;).show();


                    	&#036;(&quot;#save-btn&quot;).hide();


                	} else {


                    	config.error.call(this, data &amp;&amp; data.errors ? data.errors : &quot;Unknown error&quot;);


                	}


            	},


            	error: function(errors) {


                	var msg = &quot;&quot;;


                	if(errors &amp;&amp; errors.responseText) { 


                    	msg = errors.responseText;


                	} else {


                    	&#036;.each(errors, function(k, v) { msg += v+&quot;&lt;br&gt;&quot;; });


                	} 


                	&#036;(&quot;#msg&quot;).removeClass(&quot;alert-success&quot;).addClass(&quot;alert-error&quot;)


                         	.html(msg).show();     	


             	}


        	});


    	});


	');   


}

?>

[font="Arial"][size="2"][color="#8e8e8e"]Saludos Christian Salazar, se que tu me puedes ayudar; échame una manito que no se que hacer con este caso…[/color][/size][/font]

Muchachos de a uno, todos los días reviso sin ninguna sugerencia…