Jquery Blokuje Filtry W Adminie

Witajcie, mam taki problem. Wygenerowałem sobie CRUD za pomocą Gii. strona model/admin gdzie jest CGridView działą dobrze. Gdy w kolumnach wpisuję sobie ciągi to automatycznie mi się filtruje to czego szukam. Problem pojawił się gdy do pliku //layouts/main dodałem linijkę:


<!-- Add jQuery library -->

    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>

Wtedy przestaje działać filtrowanie. Możecie mi poradzić co to może być? Wywalam linijkę i wszystko śmiga, dodaję i przestaje.

Zamień domyślną bibliotekę jquery w ten sposób:

http://www.yiiframework.com/wiki/259/serve-jquery-and-jquery-ui-from-google-s-cdn

No nie bardzo mi to pomogło. Dodałem to w konfigu. Gdy nie dodam linijki z jquery to nie mam karuzeli i innych rzeczy, a gdy dodam nie działają filtry.

Cóż, zrobiłem dwa pliki jeden dla PA a drugi ogólny.

Jeśli używasz widgetów z Yii to one rejestrują sobie starszą wersję jQuery dostarczoną z frameworkiem. Jeśli ty rejestrujesz drugi raz nową, to całe jQuery się psuje. Możesz zaktualizować wersję z frameworka poprzez właściwość CClientScript::scriptMap podmieniając po prostu nazwę pliku na nowszą wersję ale może to zepsuć coś w samym Yii, np. gridy albo formularze (walidacja).

Taki sam problem z podwójnie rejestrowanym jQuery jest kiedy ładujesz jakąś zawartość ajaxem np do dialoga modalnego i ta zawartość też rejestruje jakieś skrypty JS.

Zakładam, że potrzebujesz nowszej wersji jQuery. Aby Yii domyślnie publikował inną wersję niż sam posiada (obecnie bodajże 1.8.x), to najprościej mu ją wskazać poprzez zmianę ścieżki w komponencie clientScript aplikacji.




'components' => array(

 	...

      'clientScript' => array([/size]

          'scriptMap' => array(

            'jquery.js' => '/js/jquery-1.10.2.min.js'

          )

)



[size=2]Nie jestem pewien, czy jak zamiast ścieżki podasz url to również zadziała, ale możesz spróbować.[/size]

Cóż, niewiele to daje. Sypie się albo jedno albo drugie. Dwa widoki i tyle.

Powinieneś:

  1. usunąć wstawioną przez Ciebie linijkę;

  2. zmodyfikować konfigurację aplikacji tak jak wspomniałem wcześniej





        'clientScript' => array(

          'scriptMap' => array(

            'jquery.js' => 'http://code.jquery.com/jquery-latest.min.js', 

            

          )

        ),



Przetestowałem u siebie na panelu admina i działa.