我正在使用 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 变量作为普通数组处理?
最佳答案
当您将 data
对象中的数组传递给 $.ajax
时,它会被解析为 name[]=value
格式。这是使用 $.param
完成的,所以我将说明如何使用它:
jQuery.param({'foo': [1, 2, 5]})
// "foo%5B%5D=1&foo%5B%5D=2&foo%5B%5D=5"
%5B
和 %5D
是 uri 编码的方括号。这是将同一键的多个值发送到服务器的常用方法。 PHP 将其解析为数组,因此在本例中:
var_export($_POST['foo']);
// array ('1', '2', '5')
所以在您的代码中,$_POST['content']
和 $_POST['content_attr']
都应该是数组。您使用的方括号是不必要的,但不会破坏任何东西。
关于php - 你能有一个设置为数组的 PHP $_POST 变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6164248/