Yii Framework Forum: Dropdownlist Ajax - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Dropdownlist Ajax Dropdownlist ajax Rate Topic: -----

#1 User is offline   maximatorrus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 21-January 14

Posted 18 February 2014 - 05:11 AM

Добрый день! Не могу прикрутить аякс к выпадающему списку. Нужно при выборе значения из селека переходить по ссылке lpu/view/id=?, где id брать из значения.
Сейчас реализовано при помощи кнопки Submit.
Облазил форумы, пробовал activedropDownList, но пишет ошибку get_class() expects parameter 1 to be object.

Какие варианты могут быть? вот код

echo CHtml::form(array('lpu/view'),'GET');
$a = CHtml::listData($models, 'id','name');
echo CHtml::activedropDownList('id','',$a);
$this->widget('bootstrap.widgets.TbButton', array('buttonType'=>'submit', 'label'=>'Выбрать'));
echo CHtml::endForm(); 

0

#2 User is offline   ORey 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 1,701
  • Joined: 20-April 09
  • Location:Moscow, Russia

Posted 18 February 2014 - 05:15 AM

Нифига не понял, при чем тут аякс вообще, но то, что Вы хотите, достигается одной строчкой на js:
$('#тут-айдишник-селекта').on('change', function(e) {window.location = '/lpu/view?id=' + e.target.value;})


(мог немного облажаться со значениями, проверьте)
God is real unless declared as integer
0

#3 User is offline   ORey 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 1,701
  • Joined: 20-April 09
  • Location:Moscow, Russia

Posted 18 February 2014 - 05:29 AM

Прочитал соседний пост, понял про аякс.
В общем, заменить window.location на $.get()
God is real unless declared as integer
0

#4 User is offline   maximatorrus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 21-January 14

Posted 18 February 2014 - 09:56 PM

Нет, сперва вы правильно поняли! То есть сейчас просто селектор и кнопка "Выбор". а нужно при нажатии на одно из значений селектора - переходить на страницу lpu/view/id=?

Но не хочет что то... Сделал как писал.
<script type="text/javascript">
    $('#id').on('change', function(e) {window.location = '/lpu/view?id=' + e.target.value;})
</script>

0

#5 User is offline   ineersa 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 325
  • Joined: 15-April 13
  • Location:Ukraine

Posted 19 February 2014 - 03:08 AM

View Postmaximatorrus, on 18 February 2014 - 09:56 PM, said:

Нет, сперва вы правильно поняли! То есть сейчас просто селектор и кнопка "Выбор". а нужно при нажатии на одно из значений селектора - переходить на страницу lpu/view/id=?

Но не хочет что то... Сделал как писал.
<script type="text/javascript">
    $('#id').on('change', function(e) {window.location = '/lpu/view?id=' + e.target.value;})
</script>


Проще так:
<script type="text/javascript">
    $('#id').on('change', function() {window.location.replace('/lpu/view?id=' + this.value);})
</script>

Должно работать, и с location.replace() будут работать переходы вперед - назад.
0

#6 User is offline   ORey 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 1,701
  • Joined: 20-April 09
  • Location:Moscow, Russia

Posted 19 February 2014 - 03:27 AM

View Postmaximatorrus, on 18 February 2014 - 09:56 PM, said:

Нет, сперва вы правильно поняли! То есть сейчас просто селектор и кнопка "Выбор". а нужно при нажатии на одно из значений селектора - переходить на страницу lpu/view/id=?

Но не хочет что то... Сделал как писал.
<script type="text/javascript">
    $('#id').on('change', function(e) {window.location = '/lpu/view?id=' + e.target.value;})
</script>



(мог немного облажаться со значениями, проверьте)

Как минимум, проверьте id у activeDropDown, посмотрите, нет ли js-ошибок итд итп.
God is real unless declared as integer
0

#7 User is offline   maximatorrus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 21-January 14

Posted 19 February 2014 - 03:44 AM

View PostORey, on 19 February 2014 - 03:27 AM, said:

(мог немного облажаться со значениями, проверьте)

Как минимум, проверьте id у activeDropDown, посмотрите, нет ли js-ошибок итд итп.


Ой, у меня не active а dropDownList простой, потому что при active выползает ошибка get_class() expects parameter 1 to be object, string given
0

#8 User is offline   ORey 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 1,701
  • Joined: 20-April 09
  • Location:Moscow, Russia

Posted 19 February 2014 - 03:51 AM

Пофиг, все равно проверяйте всё по буквам.
Проще всего в обработчик засунуть console.log(e.target.value) (или this.value) и смотреть, что там вообще приходит.
God is real unless declared as integer
0

#9 User is offline   maximatorrus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 21-January 14

Posted 19 February 2014 - 04:10 AM

View PostORey, on 19 February 2014 - 03:51 AM, said:

Пофиг, все равно проверяйте всё по буквам.
Проще всего в обработчик засунуть console.log(e.target.value) (или this.value) и смотреть, что там вообще приходит.

сделал active таким способом

$em=Lpu::model()->findAll();
$model = new Lpu();
$list = CHtml::listData($em,'id','name');
echo CHtml::activeDropDownList($model,'id',$list, array('empty' => 'Please Select'));


id теперь Lpu_id, делаю
<script type="text/javascript">
    $('#Lpu_id').on('change', function(e) {window.location = '/lpu/view?id=' + e.target.value;})
</script>
и тишина
0

#10 User is offline   maximatorrus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 21-January 14

Posted 19 February 2014 - 04:24 AM

<script type="text/javascript">
    $('#Lpu_id').on('change', function(e) {console.log($(e.target.value))})
    
    
</script>

тишина
0

#11 User is offline   ineersa 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 325
  • Joined: 15-April 13
  • Location:Ukraine

Posted 19 February 2014 - 04:24 AM

Зачем вам active?
CHtml::dropDownList("my_dropdown","",CHtml::listData(Lpu::model()->findAll(),'id','name'),
array('empty' => 'Please Select',"onchange"=>"js:function(){window.location.replace('/lpu/view?id=' + this.value);}"));

Вот собственно и все.
0

#12 User is offline   xolic 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 19-February 14

Posted 19 February 2014 - 04:35 AM

Привет из соседнего кабинета)
0

#13 User is offline   maximatorrus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 21-January 14

Posted 19 February 2014 - 04:47 AM

View Postineersa, on 19 February 2014 - 04:24 AM, said:

Зачем вам active?
CHtml::dropDownList("my_dropdown","",CHtml::listData(Lpu::model()->findAll(),'id','name'),
array('empty' => 'Please Select',"onchange"=>"js:function(){window.location.replace('/lpu/view?id=' + this.value);}"));

Вот собственно и все.


Не хочет :) ноль реакции :) правда
0

#14 User is offline   maximatorrus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 21-January 14

Posted 19 February 2014 - 04:48 AM

View Postxolic, on 19 February 2014 - 04:35 AM, said:

Привет из соседнего кабинета)

Привет!
0

#15 User is offline   ineersa 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 325
  • Joined: 15-April 13
  • Location:Ukraine

Posted 19 February 2014 - 05:01 AM

View Postmaximatorrus, on 19 February 2014 - 04:47 AM, said:

Не хочет :) ноль реакции :) правда

Если ноль реакции - проблема у Вас. Посмотрите консоль, проверьте ошибки в ней. Собственно выведите в console.log(this.value).
У меня сей код работает верой и правдой, поэтому в его работоспособности не сомневаюсь.
0

#16 User is offline   maximatorrus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 21-January 14

Posted 19 February 2014 - 05:16 AM

View Postineersa, on 19 February 2014 - 05:01 AM, said:

Если ноль реакции - проблема у Вас. Посмотрите консоль, проверьте ошибки в ней. Собственно выведите в console.log(this.value).
У меня сей код работает верой и правдой, поэтому в его работоспособности не сомневаюсь.

Uncaught SyntaxError: Unexpected token (
0

#17 User is offline   maximatorrus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 21-January 14

Posted 19 February 2014 - 11:18 PM

<script type="text/javascript">
   $(function(){$('#my_dropdown').change(function(){window.location = '/yii/maximatorrus//index.php/lpu/view/' + $(this).val();})})
</script>

Работает)
0

Share this topic:


Page 1 of 1
  • 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