プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
FuelPHP1.6、フォームからのパラメータの受け取りを理解する。
そろそろDB周りは飽きた……もとい、気分転換を兼ねてフォーム周りを試すことにしました。
まずはコントローラでフォームからパラメータを受け取る方法ですね。

FuelPHPではパラメータを受け取るメソッドが用意されているらしい。
代表的なのはこんな感じφ(--)

Input::get():GETパラメータの受け取り($_GETの凄い版)
Input::post():POSTパラメータの受け取り($_POSTの凄い版)
Input::file():FILEの受け取り($_FILEの凄い版)
Input::param():パラメータの受け取り($_GET+$_POST+$_PUTの凄い版)

他にもいろんな情報が取得できますが、それはおいおい見ていきます。
取りあえず今回はパラメータの受け取りに絞りまする(--)ノ

ほんで使い方ですが、特に難しいことはありませんでした。

$p_param = Input::param();

とかそんな感じ。

取得するパラメータを明示したいときはname属性を指定して

$p_param = Input::param('text01');

とかそんな感じ。

例えば

<input tyep="checkbox" name="chk01[n01]" value="v1">

のようにパラメータが配列($_POST['chk01']['n01'])になる中から1個を取りたい場合は
「.(ドット)」で繋いで

$p_param = Input::param('chk01.n1');

とかそんな感じ。
未指定でも配列で受け取ることはできるので、そっから地道に抜き出しても良いですけどね。

それでは、理屈が分かったところで実際に試してみますかね(--ゞ

■GETパラメータ取得
 最初に表示するHTMLがこんなのでφ(--)
<form action="./hogep/test01">
    <input type="text" name="text01" value="てすとテキスト">
    <input type="submit" name="s1" value="送信">
</form>

 パラメータを受け取るコントローラがこんなのでφ(--)
public function action_test01()
{
    $p_get = Input::get();
    $p_post = Input::post();
    $p_file = Input::file();
    $p_param = Input::param();
    var_dump($p_get);
    var_dump($p_post);
    var_dump($p_file);
    var_dump($p_param);
}

 結果がこんなのφ(--)
array(2) {  (←Input::get())
  ["text01"]=>
  string(21) "てすとテキスト"
  ["s1"]=>
  string(6) "送信"
}

array(0) {  (←Input::post())
}
array(0) {  (←Input::file())
}
array(2) {  (←Input::param())
  ["text01"]=>
  string(21) "てすとテキスト"
  ["s1"]=>
  string(6) "送信"
}

■POSTパラメータ取得
 最初に表示するHTMLがこんなのでφ(--)
<form action="./hogep/test02" method="POST">
    <input type="text" name="text01" value="てすとテキスト">
    <input type="submit" name="s1" value="送信">
</form>

 パラメータを受け取るコントローラがこんなのでφ(--)
public function action_test02()
{
    $p_get = Input::get();
    $p_post = Input::post();
    $p_file = Input::file();
    $p_param = Input::param();
    var_dump($p_get);
    var_dump($p_post);
    var_dump($p_file);
    var_dump($p_param);
}

 結果がこんなのφ(--)
array(0) {  (←Input::get())
}
array(2) {  (←Input::post())
  ["text01"]=>
  string(22) "てすとテキスト2"
  ["s1"]=>
  string(6) "送信"
}

array(0) {  (←Input::file())
}
array(2) {  (←Input::param())
  ["text01"]=>
  string(22) "てすとテキスト2"
  ["s1"]=>
  string(6) "送信"
}

■name属性が連想配列のパラメータを取得
 最初に表示するHTMLがこんなのでφ(--)
<form action="./hogep/test03" method="POST">
    <input type="checkbox" name="chk01[n01]" value="1" checked="checked">
    <input type="checkbox" name="chk01[n02]" value="1" checked="checked">
    <input type="submit" name="s1" value="送信">
</form>

 パラメータを受け取るコントローラがこんなのでφ(--)
public function action_test03()
{
    $p_get = Input::get();
    $p_post = Input::post();
    $p_file = Input::file();
    $p_param = Input::param();
    var_dump($p_get);
    var_dump($p_post);
    var_dump($p_file);
    var_dump($p_param);
}

 結果がこんなのφ(--)
array(0) {  (←Input::get())
}
array(2) {  (←Input::post())
  ["chk01"]=>
  array(2) {
    ["n01"]=>
    string(1) "1"
    ["n02"]=>
    string(1) "1"
  }

  ["s1"]=>
  string(6) "送信"
}
array(0) {  (←Input::file())
}
array(2) {  (←Input::param())
  ["chk01"]=>
  array(2) {
    ["n01"]=>
    string(1) "1"
    ["n02"]=>
    string(1) "1"
  }

  ["s1"]=>
  string(6) "送信"
}

■ファイルを取得
 最初に表示するHTMLがこんなのでφ(--)
<form action="./hogep/test04" method="POST"  enctype="multipart/form-data">
    <input type="file" name="file01">
    <input type="file" name="file02">
    <input type="submit" name="s1" value="送信">
</form>

 パラメータを受け取るコントローラがこんなのでφ(--)
public function action_test04()
{
    $p_get = Input::get();
    $p_post = Input::post();
    $p_file = Input::file();
    $p_param = Input::param();
    var_dump($p_get);
    var_dump($p_post);
    var_dump($p_file);
    var_dump($p_param);
}

 結果がこんなのφ(--)
array(0) {  (←Input::get())
}
array(1) {  (←Input::post())
  ["s1"]=>
  string(6) "送信"
}
array(2) {  (←Input::file())
  ["file01"]=>
  array(5) {
    ["name"]=>
    string(11) "hoge01.txt"
    ["type"]=>
    string(24) "application/octet-stream"
    ["tmp_name"]=>
    string(24) "C:\xampp\tmp\php2202.tmp"
    ["error"]=>
    int(0)
    ["size"]=>
    int(1627)
  }
  ["file02"]=>
  array(5) {
    ["name"]=>
    string(11) "hoge02.txt"
    ["type"]=>
    string(24) "application/octet-stream"
    ["tmp_name"]=>
    string(24) "C:\xampp\tmp\php2203.tmp"
    ["error"]=>
    int(0)
    ["size"]=>
    int(1465)
  }
}

array(1) {  (←Input::param())
  ["s1"]=>
  string(6) "送信"
}

 なんだ、「Input::param()」でファイルの中身は受け取れないのか(-。-)ぼそっ

■パラメータ名を指定して取得
 最初に表示するHTMLがこんなのでφ(--)
<form action="./hogep/test05">
    <input type="text" name="text05" value="てすとテキスト5">
    <input type="submit" name="s1" value="送信">
</form>

 パラメータを受け取るコントローラがこんなのでφ(--)
public function action_test05()
{
    $p_get = Input::get('text05', '無いよ');
    $p_post = Input::post('text05', '無いよ');
    $p_file = Input::file('text05', '無いよ');
    $p_param = Input::param('text05', '無いよ');
    var_dump($p_get);
    var_dump($p_post);
    var_dump($p_file);
    var_dump($p_param);
}

 結果がこんなのφ(--)
string(22) "てすとテキスト5"  (←Input::get())
string(9) "無いよ"  (←Input::post())
string(9) "無いよ"  (←Input::file())
string(22) "てすとテキスト5"  (←Input::param())

 ちなみに該当のパラメータが無かったときの代替値を第二引数で指定できます。

■パラメータ名を指定して取得(パラメータ名が連想配列)
 最初に表示するHTMLがこんなのでφ(--)
<form action="./hogep/test06" method="POST">
    <input type="checkbox" name="chk06[n01]" value="1" checked="checked">
    <input type="checkbox" name="chk06[n02]" value="2" checked="checked">
    <input type="submit" name="s1" value="送信">
</form>

 パラメータを受け取るコントローラがこんなのでφ(--)
public function action_test06()
{
    $p_get = Input::get('chk06.n02', '無いよ');
    $p_post = Input::post('chk06.n02', '無いよ');
    $p_file = Input::file('chk06.n02', '無いよ');
    $p_param = Input::param('chk06.n02', '無いよ');
    var_dump($p_get);
    var_dump($p_post);
    var_dump($p_file);
    var_dump($p_param);

    print '<a href="./../test06.html">back</a>';
}

 結果がこんなのφ(--)
string(9) "無いよ"  (←Input::get())
string(1) "2"  (←Input::post())
string(9) "無いよ"  (←Input::file())
string(1) "2"  (←Input::param())

うん、個性的なところは特に無いですね。
ふつーです。

と言う訳で、パラメータの受け取り、完了\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:FuelPHP  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事