【发布时间】:2016-09-20 22:10:31
【问题描述】:
我正在尝试组合一个表单的工作演示(包括 mysql),该表单使用 jquery 序列化表单数据和 php 检索数据,以便可以将其传递给 mysql 查询。
表单似乎正确地发布数据,但我不确定如何设置处理脚本,它看到 $_POST 来反序列化数据,以便我可以将它传递给 mysql。您可以在http://www.dottedi.biz/demo/code/ajax/serialize 看到演示。
我尝试过使用:
$data=unserialize($_POST['data']);
反序列化数据,但它返回为空。一个简单的 print_r ($_POST);从表单返回数组数据。如果您测试演示,您可以看到这一点。请问有什么建议吗?
添加信息 - script.js 文件的内容:
$(document).ready(function() {
$('form').submit(function(evt) {
evt.preventDefault();
$.each(this, function() {
var input = $(this);
var value = input.val();
var column = input.attr('name');
var form = input.parents('form');
var linked_col = form.find('#associated').attr('name');
var linked_val = form.find('#associated').val();
// var serializedData = $(this).serialize();
$("#Status").html( "" );
$.ajax({
url: "update.php",
data: {
val: value,
col: column,
id: linked_col,
id_val: linked_val
},
type: "POST",
success: function(html) {
$("#Status").html( html );
}
});
});
});
});
9/22 - 缩短 script.js
$(document).ready(function() {
$('form').submit(function(evt) {
evt.preventDefault();
$.each(this, function() {
$("#Result").html( "" );
$.ajax({
url: "update.php",
data: $('form').serialize(), // works to post data
type: "POST",
success: function(html) {
$("#Result").html( html );
}
});
});
});
});
评论 - 我测试过,似乎使用上面的序列化发布相同的数据,而不是创建像 var serializedData = $(this).serialize() 这样的变量并发布变量,但这更短。
【问题讨论】:
-
PHP
unserialize()不是 javascriptserialize()的反面$_POST中的数据应该像来自一组简单的表单输入一样处理 -
在mysql中存储一个数组需要序列化。但是将它传递给 javascript 你必须反序列化并将其解析为 JSON。
标签: php jquery mysql ajax serialization