【发布时间】:2018-05-10 02:32:54
【问题描述】:
我的 jQuery 脚本通过 POST 方法发送数据时遇到问题。问题是当它通过 Ajax 发送数据时,如果句子中有“&”符号,它会在找到“&”时切断句子。
请查看下面的图片了解更多信息。
【问题讨论】:
标签: php jquery ajax codeigniter
我的 jQuery 脚本通过 POST 方法发送数据时遇到问题。问题是当它通过 Ajax 发送数据时,如果句子中有“&”符号,它会在找到“&”时切断句子。
请查看下面的图片了解更多信息。
【问题讨论】:
标签: php jquery ajax codeigniter
此函数在所有方面都与htmlspecialchars() 相同,除了htmlentites() 之外,所有具有HTML 字符实体等效项的字符都将转换为这些实体。
如果您想要解码(相反),您可以使用html_entity_decode()。
例子:
echo htmlentities("&"); // &
如果您直接在浏览器中执行此操作,您应该可以使用:
encodeURIComponent(string input);
例子:
encodeURIComponent($.trim($("input[name=t-tim_rendered-"+id+"]").val().toString()));
【讨论】:
如果您将 data 参数作为 Javascript 对象传递,它将为您转换字符(并且 IMO 使代码看起来更整洁)。因此,您应该将 $.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 + "'"
【讨论】:
对于这种情况,我一直有一个很大的问题。
这只是说 Andrew Koester 的最后一个答案是我一直在寻找的完美答案。
如果您通过 .ajax() 调用将多个表单条目从 jQuery 表单传递到 PHP,如下所示:
数据:"name=" + name + "&message=" + message + ...
不要使用此方法,它会阻止用户在表单的任何输入字段上写入与号 (&) 字符。
按照 Andrew 的建议改用这个:
数据:{“名称”:姓名,“电子邮件”:电子邮件,“主题”:主题,“cmets”:cmets},
这样,用户可以编写任何类型的特殊字符,而不必担心与 ajax 声明冲突。
【讨论】:
您可以使用“encodeURIComponent”来完成该组件的 URL 编码。我使用了这个并在浏览器 IE、Firefox 和 Chrome 上进行了验证。
【讨论】: