Tippek, trükkök, ötletek

Hali!

Biztos vagy benne, hogy szükséged van ezt átírni?

Arra gondolok, hogy a php $_GET paramétereknél nem a "%2F"-t kapod meg hanem a "/"-t vagy ha esetleg mégis ott a urldecode függvény.

Persze, ha mindenképp a linket így akarod megjeleníteni, akkor a megoldás:




echo urldecode(CHtml::link('link', array('site/index', 'param'=>'folder/filename.ext')));



Én is csak ezt a megoldást találtam, azt hittem van valami yii specifikus beállítás, de nincs.

Szerintem a szép url elengedhetetlen.

Sziasztok!

Van valakinek tapasztalata a CJuiAutoComplete használatával?

A view-ban az alábbi kódot használom:




$this->widget('zii.widgets.jui.CJuiAutoComplete',

      array(

           'id'=>'autoCompField',

           'name'=>'id',                

           'source'=>"js:function(request, response) {

                 $.getJSON('".$this->createUrl('myController/suggestName')."', {

                      term: extractLast(request.term)

                 }, response);

            }",

            'htmlOptions'=>array('placeholder'=>'Any'),

            'options'=>array(

                 'delay'=>300,

                 'minLength'=>2,

                 'showAnim'=>'fold',

                 'select'=>"js:function(event, ui) {

                     var terms = split(this.value);

                     // remove the current input

                     terms.pop();

                     // add the selected item

                     terms.push( ui.item.value );

                     // add placeholder to get the comma-and-space at the end

                     terms.push('');

                     this.value = terms.join(', ');

                     return false;

                 }"

            ),

            cssFile'=>false,

));

Controller:


                

public function actionSuggestName()  {

         // search keyword from ajax

         $q = $_GET['q'];

         $rows = array();


         $sql = 'SELECT id, value  FROM data_table WHERE `value` LIKE "%' . $q . '%"';

         $rows = Yii::app()->db->createCommand($sql)->queryAll();

 

         if ($rows) {

              echo CJSON::encode($rows);

         }

         Yii::app()->end();


        }

Amit próbáltam:

Külön a controller metódusát meghívva CJSON-nak megfelelő kimenetet kapok.

Böngészőben figyelve a hálózati hívásokat, a mezőbe gépelt szöveg sikeresen elküldése kerül (200-as kód Chromeban)

Visszatérési érték:


 [{"id":"1","value":"text1"},{"id":"2","value":"text2"},{"id":"133","value":"text3"}]

Stackoverflow-n olvastam pár bejegyzést, hogy jquery hiba, meg hasonlók de egyik “megoldás” sem segített :(

Kínomban már ezt a kiterjesztést is kipróbáltam, de ugyan az az eredmény, a metódus önmagában hívható és jó értékekkel tér vissza, az AJAX hívás elmegy a metódusig, de utána nem jönnek vissza az adatok.

Előre is köszi a tippeket!

Tomi

Szia!

Megpróbáltam előhozni a hibát localhoston - nálam kapásból itt halt el 500-as hibával:


$q = $_GET['q'];

mivel $_GET[‘term’]-ként adja át:


term: extractLast(request.term)

Egyébként nálam megjelent a legördülő (Yii 1.1.14 - jQuery v1.8.3 - jQueryUI v1.9.2).

Milyen Yii verziót használsz? Konzolban van valamilyen hibaüzenet?