2013-04-22 101 views
2

在未知的水域釣魚,我給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後傳遞的任何東西(例如。 com/product123 - > product123),並在視圖「siteinfo.php」中顯示有關信息。到目前爲止,如果手動輸入到地址欄中,可以完美地與上面的代碼一起工作,因爲我可以在siteinfo.php上以$ request-> name的名稱訪問[:name]。

每當我在窗體上觸發一個搜索時,我想從homepage.php視圖將$ _POST傳遞給index.php作爲[:name]而沒有$ _GET!任何想法如何適用於klein.php或我應該開始尋找答案?

我也嘗試過傳遞參數()值,但這仍然不能與窗體一起使用。我也曾嘗試加入行動=的index.php/siteinfo.php/homepage.php爲形式的行動,但仍然沒有愛...

任何幫助非常apprechiated ...

+0

不要你需要一個響應(「POST」 ......? – karmafunk 2013-04-22 11:45:44

+0

肯定的,但如何以及在哪裏?我需要什麼形式來傳遞所以它會被正確地路由到作爲的index.php example.com/product123? – uberconversion 2013-04-22 11:48:06

+0

仍在尋找答案。任何人? – uberconversion 2013-04-23 10:50:57

回答

2

這將是一個很好開始的地方。你試過什麼了?

respond('POST', '/', function ($request, $response) { 

    $request->validate('url')->notNull(); 

    $response->url= $request->url; 

    $response->render('homepage.php'); 
});