serialize函数用于在jQuery ajax数据字符串中使用的字符串值

时间:2010-02-28 00:43:24

标签: php jquery string serialization

如何清理您通过jquery .val()收集的用户输入,以便您可以在dataString中编写它...在您在用户写入时看到的示例中

  

如果某些文字包含&其余的部分   评论似乎没有用   很好,因为它将其余部分视为一个   POST的其他变量..

是否存在戒毒或 序列化代码? jQuery的 sanitize()函数适用于表单但是 我想要一些我可以使用的东西 直接用于字符串......

var id = $("some_id_value_holder_hidden_field").val();
var comment = $("#sometextarea").val();

var dataString = "id=" + id + "&comment=" + comment;

$.ajax({

type: "POST",
url: "write_comment.php",
data: dataString,
dataType: "json",
success: function(res) {
  // Success
},
error: function(xhr, textStatus, errorThrown) {
  // Error
}
});

任何建议都将不胜感激 此致

2 个答案:

答案 0 :(得分:3)

由于你正在使用jquery,你可以使用附带的Form插件来序列化数组。

serialize() - 从表单字段创建一个url字符串(例如,someEle = someVal& anotherEle = anotherVal)

serializeArray() - 返回所有表单元素的键/值数组(对于知道很有用)

$.ajax({
    url : 'write_comment.php',
    type : 'post',
    data : $('#form-element').serialize(),
    success : function(data)
    {
        alert('yay!');
    }
});

编辑:编辑删除不正确的escape()部分。

答案 1 :(得分:2)

内置encodeUriComponent可以完全满足您的需求。除此之外,您可以在“data”字段中提供对象,在这种情况下,url编码将由jquery处理。在您的示例中:

 $.ajax({
     type: "POST",
     url: "write_comment.php",
     data: { id: id, comment: comment},
     etc...