らくらくお問合せフォーム

今回使うクラス

 

composerでインストール

{
    "require": {
        "gregwar/formidable": "dev-master"
    }
}

composer.jsonを作成して、composer installすればいいだけなので
らくちんですね XD

フォーム作成

<?php
session_start();
require 'vendor/autoload.php';

$html = 'form.html';
$form = new Gregwar\Formidable\Form($html);

echo $form;
?>

Formidableは別ファイルからフォームを読み込むことが可能です。
フォームを使いまわしたい時とかに使えるのではないでしょうか。

<?php
// ...
$html = '
<form method="post">
  <input type="text" name="name" required />
  <button type="submit">送信</button>
</form>';

$form = new Gregwar\Formidable\Form($html);
// ...
?>

もしくは、上のように文字列としてformタグを定義できます。

フォーム送信後の処理

送信後の処理などはハンドルを定義します。

<?php
$form->handle(function() {
    // フォームの送信に成功
    echo "Form OK!";
}, function($errors) {
    // フォームの送信に失敗
    // バリデーションエラーとか
    echo "Errors: <br/>";
    foreach ($errors as $error) {
        echo "$error<br />";
    }
});
?>

簡単ですね。

Formidableのすごいところは、
HTMLのタグにrequired属性を付けると、
自動的にバリデーションのチェックをしてくれるところです 🙂

これでフォームはほぼ完成ですが、
もしフォームのハンドルで、フォームの入力を取得したい場合は、
useを使えばいいそうです。

<?php
$form->handle(function() use ($form) {
    //...
    form->getValue('name');
    //...
});
?>