1

我一直在将带有 jQ​​uery ajax 和 $(this).serialize 的表单发送到 php 和数据库,并且效果很好。现在我有一种情况,我不能使用序列化表单,而是从不同的输入字段生成一个字符串,问题是它似乎在这个过程中丢失了一些 URL 实体。

例如 "&phone=+358123456789" 结果是 "&phone= 358123456789" 丢失了加号并在数据库中出现空白。"&phone=%2B358123456789" 工作正常。

因为除了“+”之外可能还有很多其他字符可能会丢失,所以我问是否有类似于 php 的htmlentities的函数可以转换字符串?我已经尝试过javascript的escape()和unescape()但没有成功,并干预了jquery的.text()和.html(),但结果也很糟糕。

4

2 回答 2

5

在数据字符串中使用encodeURIComponent 。

于 2010-08-05T11:59:32.943 回答
2

您仍然可以将数据作为对象传递给您的$.ajax()(或AJAX 简写)方法,例如:

$.ajax({
  url: 'myPage.php',
  type: 'POST',
  data: { phone: $("#phone").val(),
          other: $("#other").val() }
});

您只需传递{ param: value, param2: value }您之前放置的对象.serialize()此方法将在 encodeURIComponent()内部调用,因为这$.param()就是它使用的方法:)

于 2010-08-05T12:03:18.227 回答