$_POST с маршрутизатором klein.php: как передать $_POST в представление?
Рыбалка в неизведанных водах, я дал klein.php маршрутизации вращения и не могу на всю жизнь узнать, как передать $_POST из HTML-формы в другое представление.
Пример:
index.php
<?php
//START ROUTING
require 'klein.php';
require 'autoload.php';
respond('/', function ($request, $response) {
$response->render('homepage.php', array(
'meta_title' => 'My Homepage'
));
});
respond('/[:name]', function ($request, $response) {
$response->render('siteinfo.php', array(
'meta_title' => 'My Details Page'
));
});
Теперь у меня есть форма на homepage.php, где я делаю следующее:
<form method="post">
<input type="text" name="url">
<button type="submit">Submit</button>
</form>
siteinfo.php захватывает все, что передано после URL (т.е. example.com/product123 -> product123), и отображает информацию об этом в представлении "siteinfo.php". Пока что это прекрасно работает с приведенным выше кодом, если он введен вручную в адресную строку, так как я могу получить доступ к [:name] как $request->name на siteinfo.php.
Всякий раз, когда я запускаю поиск в форме, я хотел бы передать $_POST из представления homepage.php в index.php как [:name] без $_GET! Любая идея, как это работает с klein.php или где я должен начать искать ответы?
Я также пытался передать значение param(), но это все равно не работает с формой. Я также попытался добавить action=index.php/siteinfo.php/homepage.php в качестве действия формы, но по-прежнему не люблю...
Любая помощь очень ценится...
1 ответ
Это было бы хорошим местом для начала. что ты уже испробовал?
respond('POST', '/', function ($request, $response) {
$request->validate('url')->notNull();
$response->url= $request->url;
$response->render('homepage.php');
});