Yii Framework Forum: Ajaxsubmitbutton No Post Formulario - Yii Framework Forum

Jump to content

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

Ajaxsubmitbutton No Post Formulario Rate Topic: -----

#1 User is offline   carlosyii 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 20-September 12

Posted 05 November 2012 - 03:49 PM

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.
0

#2 User is offline   sebas 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 496
  • Joined: 28-October 08
  • Location:Buenos Aires, Argentina

Posted 05 November 2012 - 10:15 PM

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!
0

#3 User is offline   carlosyii 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 20-September 12

Posted 06 November 2012 - 05:34 AM

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.
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