Yii Framework Forum: Non Mi Va L'invio Del Form Con Ajax - Yii Framework Forum

Jump to content

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

Non Mi Va L'invio Del Form Con Ajax Rate Topic: -----

#21 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 18 April 2013 - 10:46 AM

Io non ho ancora avuto problemi con il captcha di Yii.
1

#22 User is offline   nickyii 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 15-September 12

Posted 18 April 2013 - 11:37 AM

ok allora lo provo
1

#23 User is offline   nickyii 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 15-September 12

Posted 20 April 2013 - 07:49 AM

chiedo ancora qui :P

allura... la validazione lato client funziona.

da quel che ho capito enableAjaxValidation è solo la validazione via ajax, non l'invio del form e l'aggiornamento della lista dei commenti. giusto?

Io ora vorrei fare una cosa:
1) come è ora che valida i campi lato client con :
'enableAjaxValidation'=>false,
'enableClientValidation' => true,


2)se i dati nel form sono corretti (validati lato client) me li invia, però vorrei me li inviasse in ajax, cosi da non ricaricare la pagina e mostrare gli errori se ce ne sono altrimenti mostrare il messaggio (al posto del form) di invio avvenuto e aggiornare la lista dei commenti (senza ricaricare la pagina), cosi da visualizzare il commento appena inserito.

bene... per fare questo... posso farlo con il CHtml::submitButton o devo usare CHtml::ajaxSubmitButton?
1

#24 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 20 April 2013 - 08:49 AM

Quando si tratta di ajax vado di metodo classico. Non considero il form, creo un bottone e vado di jquery. In questo modo in genere non sbaglio.
0

#25 User is offline   nickyii 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 15-September 12

Posted 20 April 2013 - 08:58 AM

ah si infatti prima di usare yii facevo sempre cosi anchio... pensavo ci fosse qualcosa di più veloce con yii
1

#26 User is offline   st4nny 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 328
  • Joined: 10-April 12

Posted 20 April 2013 - 07:00 PM

per fare una cosa di questo tipo devi cambiare concetto,
non puoi più fare un submit della form
ma devi mandare la form tramite funzione js apposita, con un serialize() per catturare i campi, su una action che risponda per la funzione js stessa.

qui un wiki, anche se molto ce l'hai già (segui l'ultima parte)
http://www.yiiframew...bmiting-in-yii/
0

#27 User is offline   nickyii 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 15-September 12

Posted 21 April 2013 - 08:06 AM

allora ho fatto tutto e ora funziona tutto.
Chiedo un piccolo aiuto ora. Questa è la mia chiamata ajax se non ci sono errori nella validazione lato client
(ci sono dei commenti, quindi spero si capisco cosa faccio)

var urldata=$("#comment-form").serialize();
$.ajax({
			type: 'POST',
			url: '<?php echo Yii::app()->getRequest()->getUrl(); ?>',
			data:urldata+"&ajax=comment-form",
			success:function(msg){
				$('.blogwcommentwrap2').empty(); //tolgo il form
				$('.blogwcommentwrap2').html(msg); //mostro il messaggio di invio con successo
			},
			error: function(msg) { // if error occured
				alert('Errore');
			},			 
			dataType:'html'
		});


ora io nella pagina ho la lista dei commenti renderizzata con questo:
<?php
			$dataCommenti=$model->Commenti;
			$totcomm=$model->commentCount;
						
			$this->widget('zii.widgets.CListView', array(
				'dataProvider'=>$dataCommenti,
								
				'viewData'=>array('totCom' => $totcomm, 'post'=>$model),
											
				'itemView'=>'_comments',
				'template'=>"{items}\n{pager}",
								
				'enablePagination' => true,
								
				'pagerCssClass'=>'blogpager',
				'summaryCssClass'=>'blogsommario',
				'itemsCssClass'=>'blogitem',
								
				'emptyText'=>'',
								
				'pager'=>'application.widget.MyPager',
			));
			?>


questo come sapete crea un div con class="list-view" che contiene il codice presente al file _comments.
Io vorrei aggiornare il div creato dal widget CListView per mostrare il nuovo commento, solo che non so come fare...

avevo pensato di aggiungere nel success dell'ajax
$('.list-view').remove();


così da levare i commenti e sostituirli con quelli nuovi. Ma come fare?
Si può annidare una seconda chiamata $.ajax all'interno del success della prima chiamata $.ajax? Cosi da rigenerare i dati e poi appenderli nell'HTML della pagina? Sapete darmi un aiuto' grazie
1

#28 User is offline   nickyii 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 15-September 12

Posted 21 April 2013 - 09:21 AM

mi rispondo da solo :lol:

nell'ajax dello script
$.ajax({
                        type: 'POST',
                        url: '<?php echo Yii::app()->getRequest()->getUrl(); ?>',
                        data:urldata+"&ajax=comment-form",
                        success:function(msg){
                                $('.blogwcommentwrap2').empty(); //tolgo il form
                                $('.blogwcommentwrap2').html(msg); //mostro il messaggio di invio con successo
                                $.fn.yiiListView.update('#IDLISTA'); //AGGIUNTA
                        },
                        error: function(msg) { // if error occured
                                alert('Errore');
                        },                       
                        dataType:'html'
                });


ho aggiunto al success:
$.fn.yiiListView.update('#IDLISTA');

1

Share this topic:


  • (2 Pages)
  • +
  • 1
  • 2
  • 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