AJAX代码:
var data = $('#myIDform').serializeObject();
$.post(
'my url',
{data: data},
function(response){
response
});
serializeObject()函数:(我从这里的类似帖子中获取了它)
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
我没有任何类型的解析或字符串化方法,每当我在我的数据库中添加一个带有特殊字符的新条目(例如'ñ')时,它在响应中完美显示,但数据库保存了这个: “A±” 我不确定问题是在数据库中,因为没有AJAX的同样的事情,工作。
编辑:当我手动刷新页面时,它显示为数据库,因为它是采集数据的地方
我一直在这里阅读,JSON.parse和JSON.stringify似乎对我不起作用,因为我在数据库中得到了一些奇怪的东西:'{'我想我没有正确地做到这一点或者有些工作正常不是预期的。
在.php中,我将其解析为:$result = $obj->insert ( JSON_parse($_POST['data']) );
在.js中,我将其标记为:var data = JSON.stringify($('#myIDform').serializeObject();
数据库中的样子:http://prntscr.com/99t6po
编辑:已解决。数据库和PHP在不同的字符集中