CHtml:link in CGridView

Salve a tutti :) chi mi spiega questo errore ? Nell’ultima colonna della griglia (zii.widgets.grid.CGridView) ho deciso di piazzare 2 immagini di tipo link (MODIFICA/ELIMINA) ma mi torna questo errore (colonna:Actions)

2496

cdataview-error.jpg

il codice è questo:


$this->widget('zii.widgets.grid.CGridView', array(

	'dataProvider'=>$dataProvider,

	'cssFile'=>false,

	'itemsCssClass'=>'table',

	'nullDisplay'=>'non assegnato',

	'template'=>'<table>{pager}{items}{summary}</table>',

	//'htmlOptions'=>array('class'=>'table'),

	'columns'=>array

		(

			'loading'=>array

				(

					'type'=>'raw',

					'headerHtmlOptions'=>array('scope'=>'col','class'=>'black-cell'),

					// header = <th class="black-cell"><span class="loading"></span></th>

					'header'=>'<span class="loading"></span>',

					//<input type="checkbox" name="selected[]" id="table-selected-1" value="1">

					'value'=>'CHtml::checkBox("selected[]",false, array("id"=>"table-selected-".$data->id))',

					'footer'=>'',

					'footerHtmlOptions'=>array('colspan'=>'5'),

				),

			

			

			'primo_contatto_data'=>array

				(

					'name'=>'Data primo contatto',

					'value'=>'$data->primo_contatto_data',

					'footerHtmlOptions'=>array('style'=>'display:none'),

				),

			'presunto_ricovero_data'=>array

				(

					'name'=>'Data ricovero',

					'value'=>'$data->presunto_ricovero_data',

				),

			'idoneo'=>array

				(

					'type'=>'raw',

					'name'=>'idoneo',

					'value'=>'CHtml::image(idoneoSiNo($data->idoneo),"idoneo")', 

				),

			

			'actions'=>array

				(

					'type'=>'raw',

					'headerHtmlOptions'=>array('scope'=>'col'),

					'htmlOptions'=>array('class'=>'table-actions'),

					//<input type="checkbox" name="selected[]" id="table-selected-1" value="1">

					'name'=>'Azioni',

					'value'=>

						'

							CHtml::link

							(

								CHtml::image(Yii::app()->theme->baseUrl."/images/icons/fugue/pencil.png","modifica paziente"),

								array("update","id"=>$data->id),

								array("class"=>"with-tip","title"=>"modifica")

							)

							."&nbsp;&nbsp;&nbsp;".

							CHtml::link

							(

								CHtml::image(Yii::app()->theme->baseUrl."/images/icons/fugue/cross-circle.png","rimuovi paziente"),

								array("admin"),

		array("class"=>"with-tip","title"=>"elimina","onclick"=>"js:alert(\'hello\');return false;"),

								

							)

						'

				),

		),

));

l’errore stà nell’ultima riga:




 array("class"=>"with-tip","title"=>"elimina","onclick"=>"js:alert(\'hello\');return false;"),

Si ma in quale unità del progetto hai aggiunto la funzione eval ? (vedi errore)

Qualora non l’avessi aggiunta tu, potresti debuggare con firebug o chrome

e guardare in NET qual’è lo script che viene richiamato, così da individuare in questo eval cosa c’è di sbagliato

prova a metere tutto il JS codice in una function


array("class"=>"with-tip","title"=>"elimina","onclick"=>"js:function() { alert(\'hello\'); return false; }"), 

fatto :( stesso errore!!

credo che faccia tutto Yii non lo uso io l’eval … :(

Firebug mi restituisce lo stesso msg… :(

Cmq l’errore è generato dall’aggiunta della funzione javascript sul secondo bottone(link)… il primo (che nn ha javascript funziona) :-[

tnx

p.s.

Può esser causato dal fatto che il tutto stia dentro degli apici singoli, in quanto proprietà dell’oggetto Column ?

Secondo me, quella pagina fa una chiamata ajax ad un altro url

e poi nella griglia visualizzi l’errore di questo url.

Firebug su rete ti dovrebbe far vedere tutti gli url che vengono richiamati automaticamente

e che cosa ricevono in input

Ciao giancarlo, non faccio nessun uso di url esterni al momento, solo classi e sottoclassi di yii … l’errore è nella funzione:


public function evaluateExpression($_expression_,$_data_=array())

	{

		if(is_string($_expression_))

		{

			extract($_data_);

			return eval('return '.$_expression_.';');

		}

		else

		{

			$_data_[]=$this;

			return call_user_func_array($_expression_, $_data_);

		}

	}

di framework/base/CComponent.php … di più non riesco a sapere ::)

Ah bene,

almeno hai trovato l’eval che rompe

Potresti aggiungere temporaneamente un log per vedere cosa riceve $expression

oppure te lo mandi via mail.

Così almeno si potrebbe intuire cosa c’è che non digerisce

Come mai non lo visto prima… guarda il secondo link… in effeti hai questo


CHtml::link(imagine,admin,htmlOptions,)

il problema e la ultima virgola ;)

Sei stato + veloce di me mdomba grazie nei vari tentativi l’ho beccato però stranamente non mi esegue l’alert !!!! :blink:

[color="#FF0000"]firebug output:[/color]


<a class="with-tip" href="/sanipack/index.php?r=paziente/admin" onclick="javascript:function(){alert('ciao');return false;}" title="elimina">

<img alt="rimuovi paziente" src="/sanipack/themes/constellation/images/icons/fugue/cross-circle.png">

</a>

dimentica il mio suggerimento… quello non sta per il onclic che va evaluato…

rimuovi la function(){}… ad anche il "js:"

dovrebbe funzionare

… e il return false; che mi blocca il procedere del tutto ;)

grazie ragazzi finalmente fuori dall’incubo :D