Php “如何逃离”&&引用;使用jQuery输入表单中的符号和字符

Php “如何逃离”&&引用;使用jQuery输入表单中的符号和字符,php,jquery,ajax,codeigniter,Php,Jquery,Ajax,Codeigniter,通过POST方法发送数据的jQuery脚本有问题。问题是,每当它通过Ajax发送数据时,如果在句子中有一个“&”符号,它就会在找到“&”时剪切句子 请查看下面的图片以了解更多信息 此函数在所有方面都与()相同,除了()之外,所有具有HTML字符实体等价物的字符都被转换为这些实体 如果您想解码(相反),可以使用() 例如: echo htmlentities("&"); // & encodeURIComponent($.trim($("

通过POST方法发送数据的jQuery脚本有问题。问题是,每当它通过Ajax发送数据时,如果在句子中有一个“&”符号,它就会在找到“&”时剪切句子

请查看下面的图片以了解更多信息

此函数在所有方面都与()相同,除了()之外,所有具有HTML字符实体等价物的字符都被转换为这些实体

如果您想解码(相反),可以使用()

例如:

echo htmlentities("&"); // &
encodeURIComponent($.trim($("input[name=t-tim_rendered-"+id+"]").val().toString()));
如果您直接在浏览器中执行此操作,您应该能够使用:

encodeURIComponent(string input);
例如:

echo htmlentities("&"); // &
encodeURIComponent($.trim($("input[name=t-tim_rendered-"+id+"]").val().toString()));

如果您将
数据
参数作为Javascript对象传递,它将为您转换字符(并且我会使代码看起来更整洁)。因此,您应该将$.ajax调用更改为以下内容:

data: {"user_id": user_id, "time_r": time_r, "task_d": task_d, "p_id": p_id, "df": finished},

可以使用本机javascript escape()函数

第74行

data: : "&task_d=" + escape(task_d) + "" 
或者,您可以将查询字符串值括在引号中

data: : "&task_d='" + task_d + "'" 

我一直有一个巨大的问题,正是在这种情况下

这只是说安德鲁·科斯特的最后一个答案是我一直在寻找的完美答案

如果您通过.ajax()调用将多个表单条目从jQuery表单传递到PHP,如下所示:

数据:“name=“+name+”&message=“+message+

不要使用此方法,它将阻止用户在表单的任何输入字段上写入与(&)字符

按照Andrew的建议,使用这个:

数据:{“姓名”:姓名,“电子邮件”:电子邮件,“主题”:主题,“评论”:评论}


这样,用户可以编写任何类型的特殊字符,而不必担心与ajax声明冲突。

您可以使用“encodeURIComponent”来完成该组件的URL编码。我使用了它,并在IE、Firefox和Chrome浏览器上进行了验证。

这个问题已经很老了,这对解决这个问题没有任何新的帮助。你应该考虑写评论,或者在允许的时候进行投票。谢谢!这就解决了我的问题,跟原来的问题差不多。