Почему база данных mySQL сохраняет строку строчными буквами? - PullRequest
0 голосов
/ 28 мая 2020

Помогите, пожалуйста. Я пытаюсь заполнить форму заявки html. Пользователь может заполнить форму, после чего она будет сохранена в базе mySQL. В html я изменил текст-преобразование: на заглавные, когда вы заполняете форму, вы можете видеть, что первая буква заглавная, но в базе данных MySQL буквы меняются на маленькие. Странный.

Ответы [ 3 ]

0 голосов
/ 28 мая 2020

Вам нужно преобразовать значение в верхний регистр при вставке в базу данных или использовать что-то вроде этого: <input type="text" onkeyup="this.value = this.value.toUpperCase();">.

Вам все равно нужно будет включить CSS text-transform: uppercase, который скроет sluggi sh поведение JS.

// Some Javascript to read what is typed in and show how it is converted

var input  = document.getElementsByTagName('input');
var output = document.getElementById('output');

var forEachEntryIn = function (array, callback, scope) {
    for (var i = 0; i < array.length; i++) { callback.call(scope, i, array[i]); } };

function outputText() {
    output.innerHTML ='';
    forEachEntryIn( input, function (idx,el,sc) { output.innerHTML += 'text ' + (idx+1) + ': ' + el.value + '<br>'; });    
}

outputText() // first run
body,input { font-size: 1.5rem }
.trans     { text-transform: uppercase }
<h3>inputs</h3>
<label>text 1</label> <input class="trans" type="text" onkeyup="outputText();"><br>
<label>text 2</label> <input               type="text" onkeyup="this.value = this.value.toUpperCase();outputText();"><br>
<label>text 3</label> <input class="trans" type="text" onkeyup="this.value = this.value.toUpperCase();outputText();">

<h3>outputs</h3>
<p id="output"></p>
0 голосов
/ 28 мая 2020

не могли бы вы объяснить, что вы сохраняете данные в верхнем регистре? В любом случае, если вы хотите, вы можете создать функцию с js для захвата данных ввода перед отправкой их в msyql, и таким образом вы можете проверить, не имеют ли данные заглавные буквы. Поскольку css действует только в браузере, например Sepencer7593

0 голосов
/ 28 мая 2020

CSS text-transform не меняет значение . Это влияет на то, как значение отображается в браузере, но не влияет на фактическое значение элемента.

Почему MySQL сохраняет нижний регистр персонажи? Поскольку MySQL хранит значение, предоставляемое оператором INSERT.

Почему код предоставляет оператору INSERT значение нижнего регистра? Вероятно (и мы здесь просто предполагаем, не видя кода), что код принимает значение из формы HTML как есть и использует его в операторе INSERT.

И почему мы получаем строчное значение из формы? Потому что это значение в форме.

Поведение соответствует ожиданиям. Опять же, текстовое преобразование CSS влияет только на то, что отображается в браузере. Он не изменяет значение, только отображение.

...