Javascript 使用&;发送字符串;登录ajaxjquerypost

Javascript 使用&;发送字符串;登录ajaxjquerypost,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在表单的文本区域使用内联编辑,在那里它可以正常工作,但是当文本是字符串包含&符号时,它只保存到&符号。那么,我如何在javascript中对url进行编码,以使我的php脚本得到它并在mysql中再次保存为&呢。 这是我当前的代码,desc是可能包含&符号的字符串 var field_userid = $(this).attr("id") ; var desc = $(this).val() ; $.post('includes/update-proper

我在表单的文本区域使用内联编辑,在那里它可以正常工作,但是当文本是字符串包含&符号时,它只保存到&符号。那么,我如何在javascript中对url进行编码,以使我的php脚本得到它并在mysql中再次保存为&呢。 这是我当前的代码,desc是可能包含&符号的字符串

    var field_userid = $(this).attr("id") ;
    var desc = $(this).val() ;      

    $.post('includes/update-property-modal.php' , field_userid + "=" + desc, function(data){    }); 

为什么不直接使用一个对象呢

var self = this,
    params = {};

params[self.id] = self.value;

$.post('includes/update-property-modal.php',params,function(data){
    // whatever thine wish may be
});

这应该在内部管理“&”的存在,并且确实是使用
$.ajax()发送参数的更好方法。如果您想以当前的方式发送参数,则需要对其进行编码

$.post('includes/update-property-modal.php' , field_userid + "=" + encodeURIComponent(desc), function(data){    });
使用encodeURIComponent()转义除以下字符外的所有字符:字母、十进制数字、-.~!*'()

但是在jQuery的ajax()和您的示例中,最好这样使用它:

var params = {
  $(this).attr('id'): $(this).val()
};
$.post('includes/update-property-modal.php', params, function(data) {});

您是否尝试将
processData
设置为false?我认为您应该尝试使用获取要在Ajax中发送的值。发送数据时,如下=>
{field\u userid:desc}
@LShetty->正确,但是由于
field\u userid
是一个变量,因此您的建议不起作用。。。它将设置属性
字段\u userId
的值,而不是该变量的值。这就是为什么在我的答案中,我按照我的方式分配它,以允许变量属性名。
var params = {
  $(this).attr('id'): $(this).val()
};
$.post('includes/update-property-modal.php', params, function(data) {});