模块

Form

Form helper class. Unless otherwise noted, all generated HTML will be made safe using the HTML::chars method. This prevents against simple XSS attacks that could otherwise be trigged by inserting HTML characters into form fields.

package
BootPHP
category
辅助类
author
Tinsh
copyright
© 2005-2016 Kilofox Studio

该类在 SYSPATH/classes/form.php 第 17 行声明。

方法

public static button( string $name , string $body [, array $attributes = NULL ] ) (在 Form 中定义)

Creates a button form input. Note that the body of a button is NOT escaped, to allow images && other HTML to be used.

echo Form::button('save', 'Save Profile', array('type' => 'submit'));

参数

  • string $name required - Input name
  • string $body required - Input value
  • array $attributes = NULL - Html attributes

Tags

返回值

  • string

源代码

public static function button($name, $body, array $attributes = NULL)
{
	// Set the input name
	$attributes['name'] = $name;
	return '<button' . HTML::attributes($attributes) . '>' . $body . '</button>';
}

public static checkbox( string $name [, string $value = NULL , boolean $checked = bool false , array $attributes = NULL ] ) (在 Form 中定义)

Creates a checkbox form input.

echo Form::checkbox('remember_me', 1, (bool) $remember);

参数

  • string $name required - Input name
  • string $value = NULL - Input value
  • boolean $checked = bool false - Checked status
  • array $attributes = NULL - Html attributes

Tags

返回值

  • string

源代码

public static function checkbox($name, $value = NULL, $checked = false, array $attributes = NULL)
{
	$attributes['type'] = 'checkbox';
	if ($checked === true)
	{
		// Make the checkbox active
		$attributes['checked'] = 'checked';
	}
	return Form::input($name, $value, $attributes);
}

public static close( ) (在 Form 中定义)

Creates the closing form tag.

echo Form::close();

返回值

  • string

源代码

public static function close()
{
	return '</form>';
}

public static file( string $name [, array $attributes = NULL ] ) (在 Form 中定义)

Creates a file upload form input. No input value can be specified.

echo Form::file('image');

参数

  • string $name required - Input name
  • array $attributes = NULL - Html attributes

Tags

返回值

  • string

源代码

public static function file($name, array $attributes = NULL)
{
	$attributes['type'] = 'file';
	return Form::input($name, NULL, $attributes);
}

public static hidden( string $name [, string $value = NULL , array $attributes = NULL ] ) (在 Form 中定义)

Creates a hidden form input.

echo Form::hidden('csrf', $token);

参数

  • string $name required - Input name
  • string $value = NULL - Input value
  • array $attributes = NULL - Html attributes

Tags

返回值

  • string

源代码

public static function hidden($name, $value = NULL, array $attributes = NULL)
{
	$attributes['type'] = 'hidden';
	return Form::input($name, $value, $attributes);
}

public static image( string $name , string $value [, array $attributes = NULL , boolean $index = bool false ] ) (在 Form 中定义)

Creates a image form input.

echo Form::image(NULL, NULL, array('src' => 'media/img/login.png'));

参数

  • string $name required - Input name
  • string $value required - Input value
  • array $attributes = NULL - Html attributes
  • boolean $index = bool false - Add index file to URL?

Tags

返回值

  • string

源代码

public static function image($name, $value, array $attributes = NULL, $index = false)
{
	if (!empty($attributes['src']))
	{
		if (strpos($attributes['src'], '://') === false)
		{
			// Add the base URL
			$attributes['src'] = URL::base($index) . $attributes['src'];
		}
	}
	$attributes['type'] = 'image';
	return Form::input($name, $value, $attributes);
}

public static input( string $name [, string $value = NULL , array $attributes = NULL ] ) (在 Form 中定义)

Creates a form input. If no type is specified, a "text" type input will be returned.

echo Form::input('username', $username);

参数

  • string $name required - Input name
  • string $value = NULL - Input value
  • array $attributes = NULL - Html attributes

Tags

返回值

  • string

源代码

public static function input($name, $value = NULL, array $attributes = NULL)
{
	// Set the input name
	$attributes['name'] = $name;
	// Set the input value
	$attributes['value'] = $value;
	if (!isset($attributes['type']))
	{
		// Default type is text
		$attributes['type'] = 'text';
	}
	return '<input' . HTML::attributes($attributes) . ' />';
}

public static label( string $input [, string $text = NULL , array $attributes = NULL ] ) (在 Form 中定义)

Creates a form label. Label text is not automatically translated.

echo Form::label('username', 'Username');

参数

  • string $input required - Target input
  • string $text = NULL - Label text
  • array $attributes = NULL - Html attributes

Tags

返回值

  • string

源代码

public static function label($input, $text = NULL, array $attributes = NULL)
{
	if ($text === NULL)
	{
		// Use the input name as the text
		$text = ucwords(preg_replace('/[\W_]+/', ' ', $input));
	}
	// Set the label target
	$attributes['for'] = $input;
	return '<label' . HTML::attributes($attributes) . '>' . $text . '</label>';
}

public static open( [ mixed $action = NULL , array $attributes = NULL ] ) (在 Form 中定义)

Generates an opening HTML form tag.

// Form will submit back to the current page using POST
echo Form::open();

// Form will submit to 'search' using GET
echo Form::open('search', array('method' => 'get'));

// When "file" inputs are present, you must include the "enctype"
echo Form::open(NULL, array('enctype' => 'multipart/form-data'));

参数

  • mixed $action = NULL - Form action, defaults to the current request URI, || [Request] class to use
  • array $attributes = NULL - Html attributes

Tags

返回值

  • string

源代码

public static function open($action = NULL, array $attributes = NULL)
{
	if ($action instanceof Request)
	{
		// Use the current URI
		$action = $action->uri();
	}
	if (!$action)
	{
		// Allow empty form actions (submits back to the current url).
		$action = '';
	}
	elseif (strpos($action, '://') === false)
	{
		// Make the URI absolute
		$action = URL::site($action);
	}
	// Add the form action to the attributes
	$attributes['action'] = $action;
	// Only accept the default character set
	$attributes['accept-charset'] = BootPHP::$charset;
	if (!isset($attributes['method']))
	{
		// Use POST method
		$attributes['method'] = 'post';
	}
	return '<form' . HTML::attributes($attributes) . '>';
}

public static password( string $name [, string $value = NULL , array $attributes = NULL ] ) (在 Form 中定义)

Creates a password form input.

echo Form::password('password');

参数

  • string $name required - Input name
  • string $value = NULL - Input value
  • array $attributes = NULL - Html attributes

Tags

返回值

  • string

源代码

public static function password($name, $value = NULL, array $attributes = NULL)
{
	$attributes['type'] = 'password';
	return Form::input($name, $value, $attributes);
}

public static radio( string $name [, string $value = NULL , boolean $checked = bool false , array $attributes = NULL ] ) (在 Form 中定义)

Creates a radio form input.

echo Form::radio('like_cats', 1, $cats);
echo Form::radio('like_cats', 0, ! $cats);

参数

  • string $name required - Input name
  • string $value = NULL - Input value
  • boolean $checked = bool false - Checked status
  • array $attributes = NULL - Html attributes

Tags

返回值

  • string

源代码

public static function radio($name, $value = NULL, $checked = false, array $attributes = NULL)
{
	$attributes['type'] = 'radio';
	if ($checked === true)
	{
		// Make the radio active
		$attributes['checked'] = 'checked';
	}
	return Form::input($name, $value, $attributes);
}

public static select( string $name [, array $options = NULL , mixed $selected = NULL , array $attributes = NULL ] ) (在 Form 中定义)

Creates a select form input.

echo Form::select('country', $countries, $country);

Support for multiple selected options was added in v3.0.7.

参数

  • string $name required - Input name
  • array $options = NULL - Available options
  • mixed $selected = NULL - Selected option string, || an array of selected options
  • array $attributes = NULL - Html attributes

Tags

返回值

  • string

源代码

public static function select($name, array $options = NULL, $selected = NULL, array $attributes = NULL)
{
	// Set the input name
	$attributes['name'] = $name;
	if (is_array($selected))
	{
		// This is a multi-select, god save us!
		$attributes['multiple'] = 'multiple';
	}
	if (!is_array($selected))
	{
		if ($selected === NULL)
		{
			// Use an empty array
			$selected = array();
		}
		else
		{
			// Convert the selected options to an array
			$selected = array((string) $selected);
		}
	}
	if (empty($options))
	{
		// There are no options
		$options = '';
	}
	else
	{
		foreach ($options as $value => $name)
		{
			if (is_array($name))
			{
				// Create a new optgroup
				$group = array('label' => $value);
				// Create a new list of options
				$_options = array();
				foreach ($name as $_value => $_name)
				{
					// Force value to be string
					$_value = (string) $_value;
					// Create a new attribute set for this option
					$option = array('value' => $_value);
					if (in_array($_value, $selected))
					{
						// This option is selected
						$option['selected'] = 'selected';
					}
					// Change the option to the HTML string
					$_options[] = '<option' . HTML::attributes($option) . '>' . HTML::chars($_name, false) . '</option>';
				}
				// Compile the options into a string
				$_options = "\n" . implode("\n", $_options) . "\n";
				$options[$value] = '<optgroup' . HTML::attributes($group) . '>' . $_options . '</optgroup>';
			}
			else
			{
				// Force value to be string
				$value = (string) $value;
				// Create a new attribute set for this option
				$option = array('value' => $value);
				if (in_array($value, $selected))
				{
					// This option is selected
					$option['selected'] = 'selected';
				}
				// Change the option to the HTML string
				$options[$value] = '<option' . HTML::attributes($option) . '>' . HTML::chars($name, false) . '</option>';
			}
		}
		// Compile the options into a single string
		$options = "\n" . implode("\n", $options) . "\n";
	}
	return '<select' . HTML::attributes($attributes) . '>' . $options . '</select>';
}

public static submit( string $name , string $value [, array $attributes = NULL ] ) (在 Form 中定义)

Creates a submit form input.

echo Form::submit(NULL, 'Login');

参数

  • string $name required - Input name
  • string $value required - Input value
  • array $attributes = NULL - Html attributes

Tags

返回值

  • string

源代码

public static function submit($name, $value, array $attributes = NULL)
{
	$attributes['type'] = 'submit';
	return Form::input($name, $value, $attributes);
}

public static textarea( string $name [, string $body = string(0) "" , array $attributes = NULL , boolean $double_encode = bool true ] ) (在 Form 中定义)

Creates a textarea form input.

echo Form::textarea('about', $about);

参数

  • string $name required - Textarea name
  • string $body = string(0) "" - Textarea body
  • array $attributes = NULL - Html attributes
  • boolean $double_encode = bool true - Encode existing HTML characters

Tags

返回值

  • string

源代码

public static function textarea($name, $body = '', array $attributes = NULL, $double_encode = true)
{
	// Set the input name
	$attributes['name'] = $name;
	// Add default rows && cols attributes (required)
	$attributes += array('rows' => 10, 'cols' => 50);
	return '<textarea' . HTML::attributes($attributes) . '>' . HTML::chars($body, $double_encode) . '</textarea>';
}