Beispiel #1
0
 public function testRenderAction()
 {
     $form = new \Phorms\Form(array('@submit:Save changes'), ['action' => False]);
     ob_start();
     $form->render([]);
     $this->assertSame(ob_get_clean(), '<input type="submit" value="Save changes">' . "\n");
 }
Beispiel #2
0
 public function testRenderInputWithDefaultAndValue()
 {
     $form = new \Phorms\Form(array('firstname' => ['Firstname', 'default' => 'Fred']), ['action' => False]);
     ob_start();
     $form->render(['firstname' => 'George']);
     $this->assertSame(ob_get_clean(), '<label for="firstname">Firstname</label><input name="firstname" id="firstname" type="input" value="George">' . "\n");
 }
Beispiel #3
0
 public function testRenderFieldsetInFieldset()
 {
     $form = new \Phorms\Form(array('@fieldset:Details', 'firstname' => 'Firstname', new \Phorms\Form(array('@fieldset:Inside', 'surname' => 'Surname'), ['action' => False])), ['action' => False]);
     ob_start();
     $form->render([]);
     $this->assertSame(ob_get_clean(), '<fieldset><legend>Details</legend>' . "\n" . '<label for="firstname">Firstname</label><input name="firstname" id="firstname" type="input">' . "\n" . '<fieldset><legend>Inside</legend>' . "\n" . '<label for="surname">Surname</label><input name="surname" id="surname" type="input">' . "\n" . '</fieldset>' . "\n" . '</fieldset>' . "\n");
 }
Beispiel #4
0
 public function testCustomFill()
 {
     // Try create a fill function which swaps firstname and surname
     $form = new \Phorms\Form(array('firstname' => 'Firstname'), array('fill' => function (&$data) {
         $data['surname'] = $data['firstname'];
         unset($data['firstname']);
     }));
     // Ensure that posting firstname, gives the other surname
     $this->assertSame($form->data(array('firstname' => 'John')), array('surname' => 'John'));
 }
Beispiel #5
0
 public function testCustomCheck()
 {
     $post = array('firstname' => '', 'surname' => 'Smith');
     $form = new \Phorms\Form(array('firstname' => array('Firstname', 'required' => True)), array('check' => function ($data) use($post) {
         // Check we got given the same post data
         $this->assertSame($data, $post);
         // Return a random error about non-existant surname field
         return array('surname' => 'There is a problem with your surname.');
     }));
     // Assert that we see both errors
     $this->assertSame($form->check($post), array('firstname' => 'The firstname field is required.', 'surname' => 'There is a problem with your surname.'));
 }
Beispiel #6
0
<?php

require __DIR__ . '/vendor/autoload.php';
session_start();
Phorms\Csrf::setSecret('mysecret');
$form = new Phorms\Form(array('@fieldset:Your details', 'firstname' => 'Firstname', 'surname' => 'Surname', 'email' => ['Email', 'type' => 'email', 'required' => True], 'color' => ['Color', ['green' => 'Green (good)', 'red' => 'Red (bad)']], 'movie' => ['Movies', [116 => 'Braveheart', 327 => 'The Rock', 955 => 'Alien II'], 'multiple' => True], 'happy' => ['Happy', 'type' => 'checkbox'], '@fieldset:Action(s)', '@submit:Create account'));
print '<html><head><link rel="stylesheet" type="text/css" href="style.css"></head><body>';
if ($data = $form->data()) {
    if ($errors = $form->check($data)) {
        print '<p>We encountered the following errors:<ul>';
        foreach ($errors as $message) {
            if (is_string($message)) {
                print '<li>' . htmlentities($message) . '</li>';
            }
        }
        print '</ul>';
    } else {
        print "Thank you " . htmlentities($data['firstname']) . "!";
        print '<pre>' . htmlentities(var_export($data, True)) . '</pre>';
        // You could exit at this point, or just re-render the form with the data
        print '<hr/>';
    }
}
$form->render($data);
print '</body></html>';