JOST-массив POST с php и ajax - ПРОБЛЕМА - PullRequest
0 голосов
/ 04 февраля 2019

Я не могу понять, как я могу передать через сценарии (ниже) переменную "action" и массив "products", созданные с помощью 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;
    }
    ?>

Мне нужны «продукты» в качестве массива, чтобы сделать цикл.Спасибо

1 Ответ

0 голосов
/ 04 февраля 2019

Вы должны использовать функцию json_decode

$productsArr = json_decode($_POST['products']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...