js obj -> json file (ajax, php) - PullRequest
       1

js obj -> json file (ajax, php)

0 голосов
/ 19 марта 2020

В настоящее время я получаю 200 зеленых ответов, однако мои данные все еще НЕ записываются в мой файл json (т. Е. Он все еще пуст)

JavaScript:

$(function() {
    $('form#saveTemp').submit(function() {
        let savdAta = JSON.stringify($('form#saveTemp').serializeObject());
        //let tempName = savdAta.styleName;
        console.log(savdAta);
        //console.log(JSON.stringify($('form#saveTemp').serializeObject()));

        $.ajax({
          url: './php/data.php',
          type: 'POST',
          contentType: "application/json",  
          data: {
              template: savdAta
          },
          success: function(msg) {
              console.log('data sent to php file, but..');
          }               
        });

        return false;
    });
});

данные в консоли из savdAta имеют следующий формат: т.е.

{"styleName":"","fillType":"none","fillTrans":"0"}

PHP:

<?php

header('Content-Type: application/json');

if (!isset($_POST['savdAta']) && !empty($_POST['savdAta'])) {
    $savdAta = $_POST['savdAta'];

    $jsonObject = json_encode($savdAta);
    file_put_contents('./data.json', $jsonObject);
}

Обновление: теперь у меня есть ниже, без ошибок, и все же мой. json файл пуст:

<?php

if (!empty($_POST['template'])) {
    $savdAta = $_POST['template'];

    file_put_contents('./data.json', $savdAta);
}

1 Ответ

1 голос
/ 19 марта 2020

Ваша переменная POST template, и вы выполняете ее только в том случае, если НЕ установлено и НЕ пусто, а это не то, что вам нужно, и в любом случае вы никогда не получите true:

//Not needed
//header('Content-Type: application/json');

if (!empty($_POST['template'])) {
    $savdAta = $_POST['template'];

    //This is already JSON
    //$jsonObject = json_encode($savdAta);
    file_put_contents('./data.json', $savdAta);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...