jQuery流程表单

时间:2010-02-24 12:23:51

标签: jquery ajax json forms serialization

这是一个非常简单的问题(我希望),但只是倾向于/掌握jQuery我提前道歉。

如果我有表格,例如

<form id="form">
<input type="text" name="abc" />
<input type="text" name="def"/>
<input type="text" name="ghi"/>
<input type="submit" name="try" id="try" />
</form>

然后像这样通过jQuery发送它

$.post("process.php", $("#form").serialize());

如何访问数据以处理process.php上的信息?即通过一个简单的PHP插入查询(我可以编写PHP!),我该如何访问序列化数据。还有一种方法可以将所有数据(来自3个字段)作为i变量发送 - 我认为这是JSON吗?如果是这样,那么当我调用数据库显示它时,如何重新处理该信息。

我对大多数事情都有很好的把握,所以你不需要过于简单化,但只是一些通用指针会有所帮助。感谢

2 个答案:

答案 0 :(得分:1)

在process.php中,数据已在$ _POST超全局中反序列化。

JSON是另一种最适合将PHP响应发送回javascript的序列化形式。

所以在你的情况下,例如,process.php读取$ _POST,以某种方式处理结果,然后你可以格式化脚本返回数组中的值,使用json_encode()和die($ json_encoded_variable_here)返回它到jquery。

在jquery中,您可以为函数添加回调:

$.post("process.php", $("#form").serialize(), function(json){
    // the variable json is the JSON died() by php and can be easily parsed by jquery
}, 'json');

答案 1 :(得分:0)

您是否考虑过简单地更改表单标记的操作和方法属性,然后提交?

$("#form").attr("action", "process.php").attr("method", "post").submit();

话虽如此,如果你这样做,要小心。直接从jQuery调用submit()时,不会运行onSubmit(如果有的话)。你必须找到它并自己运行它。