@SolidSnake13

Как записать строку в JSON-файл?

Мне нужно записать строку в файл notes.json. Мой php-скрипт почему-то не работает. Ошибок нет, просто в файл строка не добавляется.

App:
import React, {
    Component
} from "react";
import Notes from "./Notes.js";
import $ from "jquery";
 
import {
    withoutIndex
} from "./utils.js"


class App extends Component {
    constructor(props) {
        super(props);
        this.state = {
            notes: []
        };
    }
    componentDidMount(){
        this.getNotes();
    }

    
    async getNotes(){
        let notesList = [];
        await $.getJSON('./api/notes.json', function(data) {
            for(let i = 0; i<data.length; i++){
                notesList.push(data[i].text);
            }
           
        });
        await this.setState({
            notes: notesList
        });
    }

    async onNoteCreate(newNodeText){
        this.setState(oldState => {
             return {
                notes: [newNodeText].concat(oldState.notes)
            };
          });
        $.ajax({
            url: './api/saveNote.php',
            method: 'GET',
            async: false,
            data: {
                text: newNodeText
            }
        });
    }

    render() {
        return <Notes
        notes={this.state.notes}
        onDelete={this.onNoteDelete.bind(this)}
        onCreate={this.onNoteCreate.bind(this)}
        />;
    }
}


export default App;


saveNote.php:
<?php

$text = $_POST["text"];
$notes = json_decode(file_get_contents("./api/notes.json"));

array_push($notes, ["text" => $text]);
file_put_contents("./api/notes.json", json_encode( $notes ));


Файл notes.json имеет такой вид
[{"text":"lorem ipsum dolor sit amet"}, 
{"text": "aezakmi"}]

Мне нужно, чтобы по нажатию на кнопку в файл notes.json добавлялся ключ "text" со значение из поля ввода.
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 1
AlekseySychev
@AlekseySychev
Программирую в небольшой веб-студии.
Из js данные отправляете GET, а принимаете POST.
И проверьте пути. Мне кажется в php адрес файла должен быть без /api/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы