2013.
07.
21
22:57:58
そろそろDB周りは飽きた……もとい、気分転換を兼ねてフォーム周りを試すことにしました。
まずはコントローラでフォームからパラメータを受け取る方法ですね。
FuelPHPではパラメータを受け取るメソッドが用意されているらしい。
代表的なのはこんな感じφ(--)
他にもいろんな情報が取得できますが、それはおいおい見ていきます。
取りあえず今回はパラメータの受け取りに絞りまする(--)ノ
ほんで使い方ですが、特に難しいことはありませんでした。
とかそんな感じ。
取得するパラメータを明示したいときはname属性を指定して
とかそんな感じ。
例えば
のようにパラメータが配列($_POST['chk01']['n01'])になる中から1個を取りたい場合は
「.(ドット)」で繋いで
とかそんな感じ。
未指定でも配列で受け取ることはできるので、そっから地道に抜き出しても良いですけどね。
それでは、理屈が分かったところで実際に試してみますかね(--ゞ
■GETパラメータ取得
最初に表示するHTMLがこんなのでφ(--)
パラメータを受け取るコントローラがこんなのでφ(--)
結果がこんなのφ(--)
■POSTパラメータ取得
最初に表示するHTMLがこんなのでφ(--)
パラメータを受け取るコントローラがこんなのでφ(--)
結果がこんなのφ(--)
■name属性が連想配列のパラメータを取得
最初に表示するHTMLがこんなのでφ(--)
パラメータを受け取るコントローラがこんなのでφ(--)
結果がこんなのφ(--)
■ファイルを取得
最初に表示するHTMLがこんなのでφ(--)
パラメータを受け取るコントローラがこんなのでφ(--)
結果がこんなのφ(--)
なんだ、「Input::param()」でファイルの中身は受け取れないのか(-。-)ぼそっ
■パラメータ名を指定して取得
最初に表示するHTMLがこんなのでφ(--)
パラメータを受け取るコントローラがこんなのでφ(--)
結果がこんなのφ(--)
ちなみに該当のパラメータが無かったときの代替値を第二引数で指定できます。
■パラメータ名を指定して取得(パラメータ名が連想配列)
最初に表示するHTMLがこんなのでφ(--)
パラメータを受け取るコントローラがこんなのでφ(--)
結果がこんなのφ(--)
うん、個性的なところは特に無いですね。
ふつーです。
と言う訳で、パラメータの受け取り、完了\(--)/
まずはコントローラでフォームからパラメータを受け取る方法ですね。
FuelPHPではパラメータを受け取るメソッドが用意されているらしい。
代表的なのはこんな感じφ(--)
Input::get():GETパラメータの受け取り($_GETの凄い版)
Input::post():POSTパラメータの受け取り($_POSTの凄い版)
Input::file():FILEの受け取り($_FILEの凄い版)
Input::param():パラメータの受け取り($_GET+$_POST+$_PUTの凄い版)
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>
<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);
}
{
$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) "送信"
}
["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>
<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);
}
{
$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) "送信"
}
}
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>
<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);
}
{
$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) "送信"
}
}
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>
<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);
}
{
$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) "送信"
}
}
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>
<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);
}
{
$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())
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>
<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>';
}
{
$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())
string(1) "2" (←Input::post())
string(9) "無いよ" (←Input::file())
string(1) "2" (←Input::param())
うん、個性的なところは特に無いですね。
ふつーです。
と言う訳で、パラメータの受け取り、完了\(--)/