【问题标题】:HTML Form Textarea carriage return causing Line breaks when readHTML Form Textarea回车导致读取时换行
【发布时间】:2015-11-11 06:34:37
【问题描述】:

我在 HTML 表单中有一个基本的textarea,如下所示:

<textarea id="description" name="description"></textarea>

输入并提交文本后,将其发送到 Amazon Web 服务器上的 SQL 数据库。

在我的 iOS 应用程序中,我运行一个 php 文件,该文件返回一个包含此数据库内容的 jSON 对象。

当我在我的应用程序中打印此数据库的内容时,只要textarea 中出现回车,就会出现换行符。

所以输入框看起来是这样的:

现在,我从来没有按过一次Enter 键。这些回车在输入框内自动发生。

当我在应用程序中读取字符串时,它看起来像这样:

This is a multiline test to

check that everything is 

working fine.

如何忽略这些返回并将文本存储在数据库中,就好像它是一行文本一样。

我希望它看起来像这样:

This is a multiline test to check that everything is working fine.

我需要在 iOS 端执行此操作吗?还是 HTML 结尾?还是PHP端?

【问题讨论】:

    标签: php html ios sql database


    【解决方案1】:

    只需按照建议更改替换以删除两个回车符之一(\r\n 根据需要) 例如:

    preg_replace('/\n/', '',$description)
    

    仅适用于新行

    【讨论】:

      【解决方案2】:

      我注意到您说您正在使用此代码:

      <textarea id="description" name="description"></textarea>
      

      HTML 5 引入了wrap 属性。

      您遇到的问题是您设置了“硬换行”,这导致换行时换行。

      由于默认设置了“软包装”,我假设您在某处设置了“硬包装”。

      尝试检查元素,看看这里发生了什么......

      您应该可以设置wrap="soft" 并强制解决您遇到的问题。

      【讨论】:

        【解决方案3】:

        您可以首先使用 PHP 的 preg_replace 函数删除 textarea 中的所有换行符:

        $description = preg_replace('/\n|\r/', ' ', $_POST['description']);
        

        在存储到数据库之前放置代码。

        【讨论】:

        • 这里的问题是,在某些情况下,我希望用户通过点击Enter 输入新行。我只想删除用户没有创建的那些。这可能意味着它必须是 HTML 中的某些东西才能解决这个问题。
        • 如何在应用中显示 HTML?您是否为存储在description 中的每一行输出一个段落&lt;p&gt;
        • 我只是从数据库中提取字符串(描述)并将文本设置为等于它
        • 你在数据库中的描述字段是什么类型的?恐怕我无法正确重现该问题。
        • 很确定只是varchar,这有关系吗?
        猜你喜欢
        • 2013-02-27
        • 1970-01-01
        • 1970-01-01
        • 2013-09-13
        • 1970-01-01
        • 2018-08-03
        • 1970-01-01
        • 1970-01-01
        • 2014-07-27
        相关资源
        最近更新 更多