Ошибка преобразования текста в CSS?

0

Я не уверен, что я наткнулся на ошибку или нет в css или, возможно, на входы.

У меня есть форма, которая в css я использую на всех моих входах

 text-transform: capitalize;

Это отлично работает на именах, которые я печатаю, например, я набираю имя "peter", которое отображается в текстовом поле как "Peter", которое является удивительным и хорошо работает.

Моя проблема заключается в том, что когда я отправляю его в базу данных mysql, он представляется как "peter".

Я не знаю, если это по дизайну или ошибке, но если по дизайну есть какие-то предложения о том, как отправить мой желаемый результат "Питер".

Заранее спасибо.

Теги:

1 ответ

3
Лучший ответ

Это по дизайну; CSS - это интерфейсный язык и управляет только клиентом (что видит конечный пользователь). CSS является исключительно презентационным и не влияет на DOM, серверную логику и базу данных. Логика на стороне сервера заключается в том, что имя все еще записано в нижнем регистре, и значение все еще сохраняется в базе данных в нижнем регистре.

Если вы хотите обновить значение базы данных в верхнем регистре, вам нужно либо вернуть имя в свою базу данных с помощью капитализации (используя ucfirst() PHP ucfirst()):

$string = 'peter';
echo $string; // 'peter' is written to the DOM
$capitalised = ucfirst($string);
echo $capitalised; // 'Peter' is written to the DOM

Или обновите базу данных напрямую с помощью CONCAT MySQL CONCAT:

CONCAT(UCASE(LEFT(field, 1)), SUBSTRING(field, 2));
  • 1
    Или, поскольку OP упомянул, что он использует форму, использование заглавных букв может быть выполнено с помощью JavaScript перед отправкой формы.
  • 0
    Хотя вы, конечно, могли бы сделать это с помощью JavaScript ... это было бы довольно неуклюже (с чем-то вроде string.charAt(0).toUpperCase() + string.slice(1) ), в дополнение к тому факту, что вам нужно перехватить отправку формы только для этого. Кроме того, если бы было что-то вроде strtolower() стороне сервера (ради аргумента), оно все равно не strtolower() бы значение ни на сервере, ни в базе данных.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню