Files
firstPHP/src/inputs/Select.php
2024-03-15 16:56:03 +03:00

68 lines
1.6 KiB
PHP

<?php
namespace itguild\forms\inputs;
use itguild\forms\traits\CreateOption;
use itguild\forms\traits\CreateParams;
use itguild\forms\inputs\BaseInput;
class Select extends BaseInput
{
use CreateParams;
use CreateOption;
private $name;
private $options;
private $value;
private $paramsArray;
/**
* @param string $name
* @param array $options
* @param $value
* @param array $paramsArray
*/
public function __construct(string $name, array $options = [], $value = null, array $paramsArray = [])
{
$this->name = $name;
$this->options = $options;
$this->value = $value;
$this->paramsArray = $paramsArray;
}
/**
* @return $this
*/
public function create(): self
{
$paramsString = $this->createParams($this->paramsArray);
$optionsString = $this->createOption($this->options, $this->value);
$this->html = "<select name='$this->name' $paramsString>$optionsString</select>";
return $this;
}
/**
* @param string $name
* @param array $options
* @param $value
* @param array $paramsArray
* @return void
*/
public static function build(string $name, array $options = [], $value = null, array $paramsArray = []): void
{
$textarea = new self($name, $options, $value, $paramsArray);
$textarea->create()->render();
}
/**
* @param string $title
* @return $this
*/
public function setLabel(string $title): self
{
$this->html = "<label>$title $this->html</label>";
return $this;
}
}