Ajaxsubmitbutton No Post Formulario

Buenas, os explico, tengo una vista que despliega los posteos de un blog, y los comentarios, los comentarios los quiero cargar con ajax

He visto que el ajaxsubmitbutton no pasa por variables POST el formulario, he estado probando y mirando un buen rato y nada.

Tengo una vista




<?php

/* @var $this WebController */




$this->breadcrumbs=array(

	'Web',

);

?>

//Desplegamos el item de blog sin problemas

    

</p>

<div class="clear"></div>

<!--Comentarios-->

<div class="large">

    Cometarios

</div>

<div id="ajax">

     <?php $this->renderPartial('_comentarios', array('comentarios'=>$comentarios)); ?>

</div>

<!-- ADD COMENT SI ESTAS REGISTRADO -->

<?php if(!Yii::app()->user->isGuest)

    { ?>

            <div class="yiiForm">

            <?php echo CHtml::beginForm(); ?>

            <?php echo CHtml::errorSummary($form); ?>

            <div class="simple">

            <?php echo CHtml::activeLabel($form,'comentario'); ?>

            <?php echo CHtml::activeTextArea($form, 'comentario'); ?>

               <?php //echo CHtml::hiddenField($form, 'comentario',array('type'=>"hidden",'value'=>2)); ?>

            <br/>

            <?php echo CHtml::ajaxSubmitButton(

                      'Comentar',

                       Yii::app()->createUrl( 'Web/addcoment'),

                        array(

                        'type' =>'POST',

                        'update' => '#ajax',

                        'data'=>array('id_item'=>$model->ItemID,'id_user'=>Yii::app()->user->getId()),

                         ), 

                        array(

                          

                         'href'=>Yii::app()->createUrl( 'Web/addcoment'),  

                         )

                 );   ?>

            </div>

            <?php echo CHtml::endForm(); ?>

            </div>

           

           <?php } ?>

 <?php if(Yii::app()->user->isGuest)

     {

     echo CHtml::encode('Registrate para comentar'); 

  } ?>

  



Investigando un rato, lo que he conseguido a sido pasar las variables data en POST a web/addcoment

El controlador




 public function actionAddcoment()

    {


        //creamos nuevo formulario

       $form = new comentarioForm();

      

        if (isset($_POST['comentarioForm'])) {

            echo 'ola';

            $form->comentario=$_POST['comentarioForm'];

            $comentario= new Comentarios();

            $comentario->descripcion = $form->comentario;

            $comentario->ItemID = $_POST['ItemID'];

            $comentario->idUsuario = $_POST['id_user'];

            $comentario->time = date('Y-m-d H:i:s');

            //$comentario->save();

           

        }

       

        $item = Item::model()->find("itemID='".$_POST['ItemID']."'");

        

        //PASAR comentarios 

        $criteria=new CDbCriteria;

        //conf criteria a nuestro gusto y creamos comentarios que nos interesa

        $this->renderPartial('_comentarios', array('comentarios'=>$comentarios),false,true);

        Yii::app()->end();



Problema, no reconoce como he dicho $_POST[‘comentarioForm’], y no se como pasar de la vista al controlador el comentario.

O bien lo monto de otra manera o bien descubro como pasar el comentario a una variable php, aunk tmb he visto

algo como dentro de data ‘valor’=> ‘js:jquery("#id").val()’, que puede funcionar, pero nose como funciona, he probado y falla, error de jquery.

Alguien me puede echar una mano?.

Gracias.

No veo nada que este mal, lo que si veo es que no deberías pasar el id de usuario qeu postea por data ya que es el mismo que va a estar logueado cuando ejecutes tu acción.

En cuanto al ajaxsubmit button, que hace firebug? Lo manda por get? No lo manda?

Que devuelve el var_dump($_POST)?

Saludos!

Lo manda por POST, ya que lo puedes especificar en ajaxsubmitbutton, el mayor problema es que no te manda el formulario, que es como estaba trabajando hasta ahora, y me he despistado un poco.

Lo del id del usuario, toda la razón, supongo que me falta experiencia.

En cuanto a lo otro, ya lo he solucionado, quedando data de esta forma:




//Pillamos el valor del campo en concreto, comentarios, si el form tiene muchos datos, $('form').serialize()

'data'=>array('ItemID'=>$model->ItemID,'comentario'=>'js:jQuery("textarea").val()', ),



La verdad, he de aprender jquery, que siempre lo pospongo y…10 min para arreglarlo hoy.

Muchas gracias.