Ajax变量忽略换行符

时间:2018-07-26 11:33:22

标签: php jquery ajax joomla

当我尝试通过Joomla中的Ajax发送 textarea 的值时,我遇到了问题。

该变量在ajax请求之前看起来正确。但是,当从helper.php返回时,成功响应var将忽略所有换行符。

我的jQuery / Ajax:

var curBody = jQuery(this).closest("div").children("div").children('textarea').val();
//var curBody = curBodyVal;//.replace("/\r\n/","<br>");
console.log(curBody);
jQuery.ajax({            
    url: "index.php?option=com_ajax&module=usernotes&method=edit&format=json&Id="+edit_id+"&body="+curBody,
    success: function( response ) {
        console.log(response);
    }
});

在我的helper.php文件中的ajax调用函数:

public static function editAjax()
{
    $input = JFactory::getApplication()->input;
    //$bodyToUpdate = $input->get("body", 'default_value', 'raw');
    $bodyToUpdate = $_GET['body'];

    return($bodyToUpdate);
}

1 个答案:

答案 0 :(得分:2)

每当您尝试发送不是简单字符串的值时,请通过POST方法而不是GET来发送,

GET用于简单字符串,仅用于ASCII字符范围内的字符。

POST用于任何其他复杂的字符串,您也可以发送二进制数据,例如可以使用POST方法发送文件和图像,但不能使用GET方法发送

将ajax更改为此:

$.ajax({
  method: "POST",
  url: "index.php",
  data: { option: "com_ajax", module: "usernotes" , method: "edit", format: "json" , Id: edit_id, body: curBody },
  success: function( response ) {
    console.log(response);
          }
});