Jak przesłać link metodą post


(Terrymcginnis345) #1

Witam forumowiczów,

Mam problem, bardzo proszę o pomoc - dzięki.

Czy ktoś może orientuje się jak utworzyć link wysyłający dane w urlu metodą POST, a nie GET ? Chodzi mi o to żeby ukryć dane w urlu (queryString)

Przeszukałem trochę google’a, ale wszystkie metody nie działają.

U mnie to nie chodzi:

http://www.yiiframework.com/forum/index.php/topic/63152-submit-params-via-link-and-post-method/

Bardzo dziękuję za pomoc,

Pozdrawiam


(Pawel) #2

data-method="post" działa w widokach, jeśli masz dodany asset z yii.js (czyli YiiAsset).


(Terrymcginnis345) #3

Hmm… a to jedyny sposób na ukrycie query-string’a, czy jeszcze da się to jakoś obejść ?

Dzięki za info.


(Terrymcginnis345) #4

U mnie to:


Html::a('Znalazłem', ['zaginiecie/znalazlem'], ['data-method' => 'post', 'data-params' => ['id_psa'=>$id_psa]] )

na widoku, a


$post = Yii::$app->request->post();

var_dump($post);

w kontrolerze nie chce pójść…

po var_dumpie dostaję pustą tablice…

w źródle mam:


<script src="/animals/web/assets/1b9fa26f/yii.js"></script>

więc rozumiem, że mam yii.js


(Pawel) #5

Ale parametry nie w data-params tylko normalnie w linku.


(Terrymcginnis345) #6

Html::a('Znalazłem', ['zaginiecie/znalazlem','id_psa'=>$id_psa], ['data-method' => 'post'] )

to też nie działa…


(Pawel) #7

Wybacz, mój błąd. ‘data-params’ jednak. Działa.

Kontroler:




public function actionTest()

{

    var_dump($_POST);

    return $this->render('test');

}



Widok:




<?= yii\helpers\Html::a('Link', ['site/test'], ['data-method' => 'post', 'data-params' => ['key' => 'value']]);



Rezultat:




array (size=2)

  '_csrf' => string 'N1VtNk81VDdfeCsCI2MsexosJwUFXhkCbTcUWB1GCwNiLBxBCkFgcQ==' (length=56)

  'key' => string 'value' (length=5)




(Terrymcginnis345) #8

ok. już wszystko czaje. data-params to raz, a dodatkowo plik yii.js musi być w kodzie strony u góry. dlatego wcześniej nie chodziło…

Dzięki wielkie za pomoc,

Pozdrawiam


(Pawel) #9

Nie musi być w head.