【问题标题】:remove new line when sending request to server via Ajax Post with JQuery使用 JQuery 通过 Ajax Post 向服务器发送请求时删除新行
【发布时间】:2009-07-26 00:59:16
【问题描述】:

我正在尝试将 Ajax 与 JQuery 一起使用,我想要做的只是使用 Ajax 将多行文本框值发送到 php。

我正在使用该代码,它将 txtAnswer 值发送到 php,不幸的是,它从数据中删除了新行 (\n)。我该如何解决这个问题...在此先感谢。

$.post(
    'post-answer.php', 
     {
        answer: $("#txtAnswer").val(),
        qid: <?= $question_ID ?>
     },
     function (ajaxResponse) {
        $('#answers').html(ajaxResponse)
     }
   );

【问题讨论】:

  • 从哪里删除新行?什么时候从客户端接收,或者什么时候输出?

标签: php jquery ajax post


【解决方案1】:

试试:escape( $("#txtAnswer").val() )

=-)

【解决方案2】:

我也遇到过这个问题。当用户在文本区域中键入时,我有一个 div 更新预览。这是我发现在我的情况下工作的方法:

 jQuery('#task_description').keyup(function() {
  jQuery('#pre_description').html(jQuery('#task_description').val().replace( /\n/g, '<br \\>' ));
 }

【讨论】:

    【解决方案3】:

    你确定 \n 被删除了吗?如果你把它放在你的 php 文件中会发生什么:

    <?php
    print_r($_REQUEST['answer']);
    ?> 
    

    使用 firebug 你可以看到输出并确定\n 是否存在。

    我从未听说过 jquery 或原型删除 \n

    请记住,如果您想以 html 格式显示新行,您需要将它们转换为 &lt;br/&gt;。我认为您正在尝试这样做。

    您可以使用nr2br 来执行此操作。

    【讨论】:

      【解决方案4】:

      我正在使用带有 type:POST 的 .ajax,它正在为我保存新行

      【讨论】:

      • 其实没关系,一旦我将 .ajax 请求的类型设置为 POST,它就解决了这个问题(使用 GET 确实会丢失新行)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多