我已经省略了所有不相关的标签:

<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"/>

07-26 06:53
查看更多