【问题标题】:CSS text-transform bug?CSS文本转换错误?
【发布时间】:2018-08-13 02:55:01
【问题描述】:

我不确定我是否偶然发现了一个错误,或者是否在 css 中或输入中..

我有一个我在所有输入中都使用的 CSS 表单

 text-transform: capitalize;

这对我输入的名称非常有效,例如我输入名称“peter”,它在文本框中显示为“Peter”,非常棒且运行良好..

我的问题是当我提交到mysql数据库时,它被提交为'peter'。

我不知道这是设计使然还是错误,但如果是设计使然,是否有任何关于如何提交我想要的结果“彼得”的建议。

提前致谢。

【问题讨论】:

    标签: html css mysql


    【解决方案1】:

    这是设计使然; CSS 是一种前端语言,只操纵客户端(最终用户看到的)。 CSS 纯粹是展示性的,不会影响 DOM、服务器端逻辑或数据库。服务端逻辑是名称还是小写,值还是小写存储在数据库中。

    如果您想将数据库值更新为大写,您必须将名称 back 提交到您的数据库(使用 PHP 的 ucfirst()强>函数):

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

    或者直接用MySQL的CONCAT函数更新数据库:

    CONCAT(UCASE(LEFT(field, 1)), SUBSTRING(field, 2));
    

    【讨论】:

    • 或者,既然OP提到他正在使用表单,那么可以在表单提交之前使用JavaScript完成大写。
    • 虽然您当然 可以 使用 JavaScript 来做到这一点...除了您需要拦截表单提交只是为了做到这一点。此外,如果有类似 strtolower() 服务器端的东西(为了论证),那么它仍然不会更新服务器上的值,也不会更新数据库中的值。
    • 我不一定认为那行 JS 没有 CONCAT 函数那么笨拙,但还好
    • 感谢您提供信息丰富且易于理解的解释。给了我一个新的方向。 :)
    猜你喜欢
    • 2012-03-05
    • 2011-09-07
    • 2012-06-24
    • 2013-10-03
    • 2021-05-07
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    相关资源
    最近更新 更多