decadence

個人のメモ帳

postとget

データをフォームで送信などした際に$_POSTや$_GETで値を取得するんですが違いがわからず…
サンプルアプリケーションを作る時になって急にGETが出て来て戸惑ったわけです
ほなわけでぐーぐる先生に聞いた所

GETはURLの後ろにくっついて情報を送るわけですか
でもって何も指定が無い場合はGETになるらしいです
なんかGETはあまり内容によってはよろしく無い気がしてたんでQuickFormを使ってPOST送信をするにはどうするのか…

本家様より抜粋

void HTML_QuickForm::HTML_QuickForm (
          string $formName = '' , string $method = 'post' ,
          string $action = '' , string $target = '' ,
          mixed $attributes = = null , bool $trackSubmit = = false )
Description

コンストラクタです。 <form> タグの属性と送信する値のロードをします。
Parameter

string $formName
    フォームの名称を指定します。

string $method
    (オプション) フォームのメソッドを指定します。

string $action
    (オプション) フォームのアクションを指定します。

string $target
    (オプション) フォームのターゲットを指定します。

mixed $attributes
    (オプション) その他の <form> タグの属性を指定します。

boolean $trackSubmit
    (オプション) フォームから送信されたことを確認する機能を 使用するため、hidden フィールドを追加するかどうかを指定します。
    $_GET あるいは $_POST の値にそのフィールドが存在しない場合、フォームは送信されなかったと考えられます。

どうやら2番目のコンストラクタ引数に'POST'を指定すればよさそうです
うまく出来ました


なぜか最初に開いた状態でvalidate()が行われ、addRuleが適応されてる状態に…

$stmt->bindParam(':c_id', $_POST['id']);

まさかのこの一行に原因ありっぽいなんで…

$ids = $_POST['id'];
$stmt->bindParam(':c_id', $ids);

こうしたらなおりました一応なんでかはわかりません