Compare commits

..

No commits in common. "master" and "0.1.7" have entirely different histories.

2 changed files with 9 additions and 41 deletions

View File

@ -7,20 +7,12 @@ use itguild\forms\inputs\Select;
class SelectBuilder
{
public static function build(string $name, array $params = []): Select
public static function build(string $name, array $params = [])
{
$value = $params['value'] ?? null;
unset($params['value']);
if (isset($params['prompt'])) {
$options['prompt'] = $params['prompt'];
foreach ($params['options'] as $key => $val) {
$options[$key] = $val;
}
unset($params['prompt']);
} else {
$options = $params['options'] ?? [];
}
$options = $params['options'] ?? [];
unset($params['options']);
return new Select(name: $name, options: $options, value: $value, paramsArray: $params);

View File

@ -2,8 +2,6 @@
namespace itguild\forms\traits;
use itguild\forms\debug\Debug;
trait CreateOption
{
/**
@ -14,37 +12,15 @@ trait CreateOption
public function createOption(array $options, $value = null): string
{
$optionsString = "";
if ($value) {
if (isset($options['prompt'])) {
$prompt = $options['prompt'];
$optionsString .= "<option value='''>$prompt</option>";
}
if (is_array($value)) {
foreach ($options as $val => $title) {
if ($val === 'prompt') continue;
$selected = in_array($title, $value) ? "selected" : "";
$optionsString .= "<option $selected value='$val'>$title</option>";
}
} else {
foreach ($options as $val => $title) {
if ($val === 'prompt') continue;
if (is_numeric($value)) {
$selected = (int)$value === $val ? "selected" : "";
} else {
$selected = $value === $val ? "selected" : "";
}
$optionsString .= "<option $selected value='$val'>$title</option>";
}
if (is_array($value)) {
foreach ($options as $val => $title) {
$selected = in_array($title, $value) ? "selected" : "";
$optionsString .= "<option $selected value='$val'>$title</option>";
}
} else {
if (isset($options['prompt'])) {
$prompt = $options['prompt'];
$optionsString .= "<option value='' selected='selected'>$prompt</option>";
}
foreach ($options as $val => $title) {
if ($val === 'prompt') continue;
$optionsString .= "<option value='$val'>$title</option>";
$selected = (int)$value === $val ? "selected" : "";
$optionsString .= "<option $selected value='$val'>$title</option>";
}
}