微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

您可以将PHP $_POST变量设置为数组吗?

我正在使用AJAX将一些数据放入数据库中.我正在使用JSON将数据提交到PHP页面.我正在使用POST请求.您可以将POST变量之一设置为数组吗?下面有完整的AJAX请求,但这是我将数据的两部分设置为数组的部分:

"content[]" : testContentArray,
"content_attr[]" : testContentAttributes,

以下是我完整的AJAX(使用jQuery):

$.ajax({
                type: "POST",
                url: "../includes/create_test_main.ajax.PHP",
                data:   {"tags" : $('#testTags').val(),
                                         "title" : $('#testTitle').val(),
                                         "subject" : $('#testSubject').val(),
                                         "description" : $('#testDescription').val(),
                                         "content[]" : testContentArray,
                                         "content_attr[]" : testContentAttributes,
                                         "user_id" : user_id},
                success: 

                                     function(testId) {//redirect Page
                                        window.location.href = "http://localhost/nvr_forget/public_html/test/" + testId + "/";
                                     }
            });
        };

如果那是这样做的方式,那么我将如何在PHP方面进行处理?如何将$_POST变量作为普通数组处理?

解决方法:

当您将数据对象中的数组传递给$.ajax时,它会解析为name [] = value格式.这是使用$.param完成的,因此我将举例说明:

jQuery.param({'foo': [1, 2, 5]})
// "foo%5B%5D=1&foo%5B%5D=2&foo%5B%5D=5"

[和]是uri编码的方括号.这是将相同密钥的多个值发送到服务器的常用方法. PHP将其解析为数组,因此在这种情况下:

var_export($_POST['foo']);
// array ('1', '2', '5')

因此,在您的代码中,$_POST [‘content’]和$_POST [‘content_attr’]应该都是数组.您使用的方括号是不必要的,但不会破坏任何内容.

See the PHP manual on the subject.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐