JQuery nie działa w Gridview PILNE

Witam forumowiczów,

Mam problem, błagam o pomoc- DZIĘKUJĘ.

Nie mogę uruchomić javascript, ani jquery we funkcji przy ‘value’. Chodzi mi o to, aby po kliknięciu na link uruchomić alert. Jak sprawić, żeby jquery lub javascript zadziałał w GridView. Oczywiście dodałem linijkę importującą jquery do widoku.


<?= GridView::widget([

    'dataProvider' => $dataProvider,

    'columns' => ['data_dodania',

	    [

	    	'attribute' => 'tytul',

	    	'format' => 'html',

	    	'value' => function($model) {


	    		if ($model['typ'] == 'img') {

	    			

					return '<a onClick="javascript: alert("Hello")">link</a>';

				}		      

	            }

	    ]

	],


]);

Dzięki i pozdrawiam.

Witaj, wystarczy łądnie sprecyzować i opisać pytanie to Ci pomogą :)

  1. Nie pchaj kod JavaScript w ten "środek" widoku.

  2. Lepiej dodać funckję Click Jquery na samym dole. Więc tagujesz element np.




if ($model['typ'] == 'img') {                        

   return Html::a ( 'link', '#', ['id' => 'element1'] );

}                     



I dodajesz ten kod do widoku,




$this->registerJs("$(document).ready(function() {		

	$( '#element1' ).click(function() {

  	alert('hello');

	});

});", 3);

Nie ważne w którym miejscy widoku dodasz metodę registerJs, Pierwszy paramter to kod JS, a drugi (3) oznacza że kod ma się pojawić na samym dole. Pojawi się po plikach JS jQuery.js i Bootsrap.js

Jeżeli coś nie będzie działać sprawdź napierw sam kod JS. Dodając samo alert();




$this->registerJs("$(document).ready(function() {		

	

  	alert('hello');

	

});", 3);

Jeżeli będzie problem z GriedView, to sprawdź warunek, ja preferuje wersję obiektową $model->typ nie array $model[‘typ’] więc nie jestem pewien czy to działa. Dla przykładu zwracamy sobie najpierw jeden element aby upewnic sie że są dane


[

'attribute' => 'category_id',

'value' => function ($model, $key) {

    return  $model->category_id;

},

'filter' => Html::activeDropDownList($searchModel, 'category_id',     $searchModel::nazwaJakiejsMetody(),['class'=>'form-control','prompt' => 'All']),

	],

ps. daj plusa

Wow. Dzięki za info :)

A co jak chce wykonać kod jquery w onClick, ale wew. Gridview ?


...


'value' => function($model) {

	    			

return '<a onClick="$(\'#Tresc\').html(\'<img src='.$model['adres'].'>\');">'.$model['tytul'].'</a>';


}


...



Pozdrawiam

Dzięki. Dałem plusa.

Udało się wcisnąć ten kod JavaScript ?