无法使用jQuery修剪textarea值

时间:2019-08-21 01:26:30

标签: javascript php jquery ajax

我正在尝试使用ajax请求将textarea中的文本发送到php文件。要发送文本,我首先需要获取textarea的值: var text = $("#textarea).val(); 这很好。显示出textarea的值。然后,我执行一个ajax请求:

$.ajax({
    url: 'set_articles.php',
    type: 'POST',
    data: {text: text},
    success: function(data) {
      console.log(data);
    },
    error: function(requestObject, error, errorThrown) {
      console.log(error);
      console.log(errorThrown);
    }
});

在单独的php页面上,正在接收数据,但是问题是,当我尝试按段落拆分文本时,该段落中有一个\n。例如,如果我发送按Enter键将这两段分开:

Random paragraph of text.
Random paragraph of text.

并使用以下php代码接收信息:

$text = nl2br($_POST['text']);
$paragraphsArray = preg_split('/\n/', $text);
print_r($paragraphsArray);

这是显示的文字:

Array
(
    [0] => Random paragraph of text.<br />\nRandom paragraph of text.
)

这就是我要发生的事情:

Array
(
    [0] => Random paragraph of text.
    [1] => Random paragraph of text.
)

我已经尝试过修剪变量text,就像这样:

var text = $("#textarea).val();
var newText = $.trim(text);

但它返回相同的内容:

Array
(
    [0] => Random paragraph of text.<br />\nRandom paragraph of text.
)

如何修剪文本以使数组起作用?还有其他我应该发布的代码吗?让我知道。

3 个答案:

答案 0 :(得分:0)

在这种情况下,我相信您可以使用PHP_EOL(行尾)常量在一行中解决该问题:

$array_data = explode(PHP_EOL, $_POST['text']);

答案 1 :(得分:0)

您应该使用双引号作为“ \ n”,而不仅是引号




explode("\n",$_POST['text']); //this working

explode('\n',$_POST['text']); //this  not working

答案 2 :(得分:0)

在PHP中偶尔使用单引号(')作为字符串定界符会导致PHP从字面上对待内容,即转义字符(例如\)不再转义,因此在您的用例中更有用在这里使用双引号(“)。

$array_data=explode("\n", $_POST['text']);