php - 使用 php 和 ajax 发布 json 数组 - 问题
问题描述
我无法理解如何通过脚本(如下)传递一个“动作”变量和一个用 php 创建的“产品”数组。
<?php
$actionFile = "add";
$products = array("Name product", "price", "sku", ....);
?>
<script>
function uploadProducts() {
var formData = new FormData();
formData.append("action", <?php echo json_encode($actionFile); ?>);
formData.append("products", <?php echo json_encode($products); ?>);
$.ajax({
type: 'POST',
url: './controllers/uploadProductsController.php',
data: formData,
processData: false,
contentType: false,
beforeSend: function(){
// Show image container
//$("#loader").show();
console.log("1");
},
success: function(response){
//$('.response').empty();
//$('.response').append(response);
console.log("2");
console.log(response);
},
complete: function(){
// Hide image container
//$("#loader").hide();
console.log("3");
}
});
}
</script>
uploadProductsControlle.php(下面的代码)我将数组打印为单个字符串,而不是数组。
<?php
include("../../functions.php");
$action = $_POST['action'];
$productsArr = $_POST['products'];
$response = array();
var_dump(json_encode($productsArr)); //ERROR THIS PRINT STRING
foreach($productsArr as $product) {
echo $product;
}
?>
我需要“产品”作为一个数组来做一个循环。谢谢
解决方案
你应该使用 json_decode 函数
$productsArr = json_decode($_POST['products']);
推荐阅读
- python - 输出顺序不正确
- python - 当我在平铺中编辑 tilesheets 时,pygame 游戏崩溃
- postgresql-11 - 由于旧的 walsender 进程,pg_create_logical_replication_slot 无限期挂起
- javascript - 在 Materialise 多选下拉菜单中自动选择
- angular - Angular 7 中注入服务与单例服务的内存和性能比较
- vb.net - 用数据集填充组合框
- java - 如何使用 java servlet 输出 SQL 查询的结果
- nsis - 我想知道如何使用 NSIS 从 C++ 可执行文件中调用函数
- sql-server - sql server中的复合主键
- android - 尝试设置 chaquopy 时出现错误(错误显示:启动失败(org.gradle.process.internal.ExecException)