diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php index 7068088c..9181d311 100644 --- a/adminer/include/adminer.inc.php +++ b/adminer/include/adminer.inc.php @@ -430,8 +430,10 @@ document.getElementById('username').focus(); */ function editInput($table, $field, $attrs, $value) { if ($field["type"] == "enum") { - return ($field["null"] ? " " : "") + return (isset($_GET["select"]) ? " " : "") + . ($field["null"] ? " " : "") . "" + . enum_input("radio", $attrs, $field, $value) ; } return ""; diff --git a/adminer/include/functions.inc.php b/adminer/include/functions.inc.php index 7fe46c44..489108f2 100644 --- a/adminer/include/functions.inc.php +++ b/adminer/include/functions.inc.php @@ -568,11 +568,13 @@ function column_foreign_keys($table) { */ function enum_input($type, $attrs, $field, $value) { preg_match_all("~'((?:[^']|'')*)'~", $field["length"], $matches); + $return = ""; foreach ($matches[1] as $i => $val) { $val = stripcslashes(str_replace("''", "'", $val)); $checked = (is_int($value) ? $value == $i+1 : (is_array($value) ? in_array($i+1, $value) : $value === $val)); - echo " '; + $return .= " '; } + return $return; } /** Print edit input field @@ -588,9 +590,7 @@ function input($field, $value, $function) { $functions = (isset($_GET["select"]) ? array("orig" => lang('original')) : array()) + $adminer->editFunctions($field); $attrs = " name='fields[$name]'"; if ($field["type"] == "enum") { - echo nbsp($functions[""]) . "" . ($functions["orig"] ? " " : ""); - echo $adminer->editInput($_GET["edit"], $field, $attrs, $value); - enum_input("radio", $attrs, $field, $value); + echo nbsp($functions[""]) . "" . $adminer->editInput($_GET["edit"], $field, $attrs, $value); } else { $first = 0; foreach ($functions as $key => $val) { diff --git a/editor/include/adminer.inc.php b/editor/include/adminer.inc.php index 099d74ed..af6b47e1 100644 --- a/editor/include/adminer.inc.php +++ b/editor/include/adminer.inc.php @@ -202,7 +202,7 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5 $key = $keys[$name]; $i--; echo "
" . h($desc) . ":"; - enum_input("checkbox", " name='where[$i][val][]'", $field, (array) $where[$key]["val"]); //! impossible to search for NULL + echo enum_input("checkbox", " name='where[$i][val][]'", $field, (array) $where[$key]["val"]); //! impossible to search for NULL echo "
\n"; unset($columns[$name]); } @@ -392,7 +392,10 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5 function editInput($table, $field, $attrs, $value) { if ($field["type"] == "enum") { - return ($field["null"] ? "" : ""); + return (isset($_GET["select"]) ? " " : "") + . ($field["null"] ? "" : "") + . enum_input("radio", $attrs, $field, $value) + ; } $options = $this->_foreignKeyOptions($table, $field["field"]); if ($options) {