coby
(Abcdespam)
December 1, 2015, 4:03pm
1
Mam widok w niej wyświetlany jest widok działania jakiegoś kontrolera.
Czyli z kontrolera przesyłam ajkieś dane które odczytuje w widoku np. tak:
<?php echo $zmienna;?>
Powiedzmy, że teraz w widoku chcę wywołać inną akcję poprzez przycisk:
<?php echo Html::a('PDF', ['/kontroler/akcja'], ['class' => 'btn btn-lg btn-success']);?>
Jak przekazać teraz do tego kontroler akcja co jest pod przyciskiem tą zmienną $zmienna?
Bizley
(Bizley)
December 1, 2015, 4:17pm
2
<?php echo Html::a('PDF', ['/kontroler/akcja', 'zmienna' => $zmienna], ['class' => 'btn btn-lg btn-success']);?>
A w akcji:
public function actionAkcja($zmienna) {}
coby
(Abcdespam)
December 1, 2015, 5:06pm
3
Dzięki, dokładnie o to chodziło.
coby
(Abcdespam)
December 1, 2015, 5:26pm
4
Mam jeszcze jedno pytanie.
Jak to przekazać metodą POST, aby nie doklejało do adresu bo to brzydko wygląda i jak potem odczytać jako zmienna w kontrolerze?
Jak w ten sposób przekazać tablicę zmiennych?
Chodzi o to, że będę miał więcej tych zmiennych.
Stworzył bym wtedy tablicę tych zmiennych, tylko jak przekazać całą tablicę tych zmiennych jako parametr akcji a potem w kontrolerze bym sobie rozbił to?
Bizley
(Bizley)
December 2, 2015, 7:45am
5
Musisz użyć formularza albo js do przekazania.
W akcji odbierasz nie parametrem tylko w kodzie za pomocą $przekazane_zmienne = Yii::$app->request->post();
Przy małej ilości zmiennych możesz użyć urlManagera do maskowania przekazywanych zmiennych.
http://www.yiiframework.com/doc-2.0/guide-runtime-routing.html#using-pretty-urls
http://www.yiiframework.com/doc-2.0/guide-runtime-routing.html#url-rules
coby
(Abcdespam)
December 2, 2015, 5:41pm
6
Mogę prosić o jakiś przykład, pseudokod, tutorial?
Jak przekazać to za pomocą tego przycisku?
Bizley
(Bizley)
December 2, 2015, 6:05pm
7
Jak zrobić formularz to nie będę opowiadał, bo to podstawy (tu masz jak to robić z Yii 2 http://www.yiiframework.com/doc-2.0/guide-input-forms.html ).
Co do wysyłania postem za pomocą js, to googlaj "jquery post" i będzie mnóstwo przykładów.