【问题标题】:jquery text area problemjquery文本区域问题
【发布时间】:2011-01-25 10:11:33
【问题描述】:

我有一个文本区域

        <textarea name="message" id="message" class="text_field" style="height:200px; width:500px"></textarea>

如果我像这样在文本区域中输入数据

        hello
        this is my test message

        bye
        'abc'

我使用以下语句从文本区域获取数据

     var message = $('#message').attr('value');

我将此值传递给其他 php 文件,如

      var data = {message:message};
 $.ajax({
 type: "POST",
 url: "show.php",
 data: data,
 etc

当我在显示中看到后值萤火虫中的数据时,我输入数据(带有新行和空格等) 并在 php 文件中

          $message=$_POST['message'];

           $Content = file_get_contents($temp_page);
           $Content = str_replace('%%a%%', $message, $Content);

现在我用的时候

             echo $Content

我在一行中得到了所有文本,我在文本区域中输入的内容不准确...

          hello this is my test message bye 'abc'

谢谢

【问题讨论】:

  • 您的陈述看似正确,但我认为有问题?

标签: php jquery ajax textarea


【解决方案1】:

这是因为浏览器不会在 textareas 或其他定义为按原样打印输出的元素之外打印换行符,例如 &lt;pre&gt;

您需要使用echo nl2br($Content); 将换行符替换为&lt;br /&gt; 元素,这相当于(x)HTML 中的换行符。

【讨论】:

  • 在我多年的 PHP 编码中,我从未见过 nl2br 命令。谢谢!我一直在手动执行此操作。
【解决方案2】:

如果您直接回显到浏览器,请尝试查看页面的源代码。您可能会发现浏览器将文本解释为 HTML,在这种情况下,它将折叠您的所有空格和换行符。查看源代码理论上应该会显示您最初输入的内容,包括换行符、额外空格等。

【讨论】:

    【解决方案3】:

    想想如果你只是像这样输入一些 HTML 源代码会发生什么:

    <p>
      Hello there.
         This is 
      my
    
           HTML
    
      source, and I hope
    
                         you
    
          like it.
    </p>
    

    那看起来像什么?对 - 浏览器会将所有这些换行符视为简单的空格,并在布置非空格字符时将其全部折叠。

    当您转储 textarea 内容时(顺便说一句:使用$('#whatever').val() 获取值),您正在做同样的事情。如果您想保留格式,那可能会令人头疼。您可以尝试将其放在 &lt;pre&gt; 块中,或者您可能必须显式查找换行符并将它们转换为 &lt;br&gt; 元素。

    编辑:请参阅@Tatu 对您想要的 php 函数的回答。

    【讨论】:

      【解决方案4】:

      如果您右键单击并单击“查看源代码”(或类似的选项),您应该会看到格式正确的文本。这是由于 HTML 的工作方式。即使您编写以下 HTML:

      hello
      this is my test message
      
      bye
      'abc'
      

      输出将是内联的。您必须在每行之后写
      ,或者将文本包装在

       标记中。
          

      【讨论】:

        【解决方案5】:

        也许你可以试试:

        nl2br($Content);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-01-03
          • 2011-08-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-31
          相关资源
          最近更新 更多