Мне нужно записать строку в файл 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" со значение из поля ввода.