这就是场景,我正在返回一个完整的表单,其中填充了php作为json的值,然后它将在jquery中获取并附加到div以显示它。
所以当我使用例如提交它时。 ($(#formID).serialize()
),它不返回任何值,也没有被序列化。
任何帮助将不胜感激。 非常感谢。
抱歉,如果它不完整。
这就是:
来自php:
我使用
返回值return json_encode( array( "msg"=>"test", "html"=>$this->getFormData()) );
“html”将返回包含所有表单字段的编码表单。 “msg”将返回服务器端验证(如果有的话)
来自客户端:
我使用jquery / ajax发布并返回这样的结果。
var _params = {};
_params["pageid"] = pageid;
_params["page"] = page;
$.ajax
({
url: "control/route.php",
type: "POST",
dataType: "JSON",
data: _params,
async: false,
cache: false,
success: function(data)
{
if (data.html)
{
$("#formID").append(data.html);
}
if (data.msg)
{
emp.message = data.msg;
emp.showError();
msg.show(200);
}
});
这会将结果呈现为一个带有数据库值的表单。
但是当我要序列化相同的formID时,它没有返回任何值,你认为它是因为它是从PHP返回为JSON吗?
答案 0 :(得分:1)
所有serialize()
都会将表单编码为适合提交的URL友好文本字符串。它不会自动发送表单等。您也忘记在选择器中使用撇号 - 您引用了元素的ID,因此您应该使用它们:
$.post('/path/to/script.php', $('form#id').serialize(), function() {
// Do something on success
});