我已经省略了所有不相关的标签:
<form id="loginform">
<input name=login[username] />
</form>
<script
$.ajax ({
url: 'login.php',
data: {
action : 'login',
formData : $('#loginform').serialize()
},
type: 'post',
async: 'true',
dataType: 'json',
...
});
</script>
我尝试过
在PHP中执行print_r($ _ POST)时,我希望接收以下数据:
Array {
action = login
formData = Array {
login = Array {
username = xxxxxxx
}
}
}
我需要在我的第一个jquery移动项目中实现它,因为我习惯在所有其他项目中使用它。如果发布的数据已经结构化,那么可以为我节省大量的PHP开发时间。
我试过了:
formData : $('#loginform').serialize()
和
formData : $('#loginform').serializeArray()
我当然可以使用:
formData = new FormData();
formData.append(...);
但是我喜欢一个更通用的,无需(很多)编辑,解决方案就可以使用的东西,类似于序列化版本。
最佳答案
我不是PHP编码员,但看来您的PHP代码想要一个Array
,但是却被发送了一个字符串值。您将必须在PHP中执行Split(';')
和Split('=')
函数,才能将序列化的数据解析为数组。或者不要期望PHP中有一个数组并单独请求每个字段,那么您可以改为执行以下操作:
...
data: $('#loginform').serialize(),
然后以您的形式添加它:
<input type="hidden" name="action" value="login"/>