luko91
(Facio91)
December 10, 2014, 8:00pm
1
Cześć , tworzę prostą wyszukiwarkę i chciałbym by po submicie przekierowało mnie do podstrony results.php wraz z tym co zostało wpisane w textfield.
Nie wiem jak przekierować do strony która jest umieszczona w projektYii/protected/views/site/results.php . Podawanie całej ścieżki na pewno nie jest dobrym rozwiązaniem .
Jak to zrobić w tym frameworku ?
<form action="/result.php" method="post">
<div>
<label for="lab">Wpisz frazę:</label>
<input type="text" autocomplete="off" id="hints" name="title"/>
<input type="submit" value="Szukaj">
</div>
</form>
rob006
December 10, 2014, 8:35pm
2
Spróbuj:
<form action="<?php echo Yii::app()->createUrl('site/result'); ?>" method="post">
rdvitka
(Rdvitka)
December 11, 2014, 7:00am
3
W Yii2 można to zrealizować:
N[size="2"]a stronie z wyszukiwarką[/size]
[size="2"]
<form method="post" action="<?= \yii\helpers\Url::to(['site/result'])?>">
<div>
<label for="lab">Wpisz frazę:</label>
<input type="text" autocomplete="off" id="hints" name="title"/>
<input type="submit" value="Szukaj">
</div>
</form>
[/size]
[size="2"]w kontrolerze np tak:[/size]
[size="2"]
public function actionResult()
{
$searchTitle = '';
if (trim(!empty(Yii::$app->request->post()['title']))) {
$searchTitle = trim(Yii::$app->request->post()['title']);
}
return $this->render('result', ['searchTitle' => $searchTitle]);
}
[/size]
[size="2"]a w widoku result.php:[/size]
[size="2"]
<p>Wyszukiwany tytuł: <?= $searchTitle ?></p>
[/size]
luko91
(Facio91)
December 11, 2014, 10:33pm
4
Dzięki za odpowiedź , niestety po wpisaniu
<form method="post" action="<?= \yii\helpers\Url::to(['site/result'])?>">
tej linijki wyświetla się pusta strona zamiast wyszukiwania. W konsoli w przeglądarce pokzauje:
Class ‘yii\helpers\Url’ not found in <b>C:\xampp\htdocs\test\protected\views\site\update.php</b>
Czyli z tego co widze ścieżkę do pliku php dobrze wstawił.
Edit:
użyłem tego:
<form action="<?php echo Yii::app()->createUrl('site/result'); ?>" method="post">
a w Controlerze
zamiast
Yii::$app->request->post()['title']))
dałem to
Yii::app()->request->getPost('title'));
i działa , dzięki .
rob006
December 11, 2014, 10:35pm
5
A z której wersji frameworka korzystasz?
VonSNAKE
(Von Snake)
December 14, 2014, 11:59pm
7
A poza widokiem views/site/results.php
Masz w Kontrolerze Site akcje results?