Страница 1 из 1
Как принять данные js и записать их в БД?
Добавлено: 2022.05.19, 11:50
levy
Есть страница update с нее с помощью send.Beacon отправляю post id, чтобы потом по этому id найти запись в БД и изменить в ней переменные. Где и как принять этот id, и как на сервере выполнить php для записи?
Код скрипта:
Код: Выделить всё
function changeEdit(){
var id = '<?= $model->id?>';
var data = {id:id};
navigator.sendBeacon(/*куда отправлять?*/,data);
};
window.addEventListener('unload', chandeEdit);
А вот что делать дальше вообще не понимаю, как просто из формы записать данные знаю, а вот как фоном сделать запись некоторых переменных вопрос. Если есть какие-либо подробные примеры реализации, буду очень благодарен.
Re: Как принять данные js и записать их в БД?
Добавлено: 2022.05.19, 12:33
terrarium volition
Поищите в теле POST запроса.
Примеров в сети миллион. $_POST вам в помощь
Re: Как принять данные js и записать их в БД?
Добавлено: 2022.05.19, 13:10
levy
В контроллере создал action:
Код: Выделить всё
public function actionEdit() {
$id = Yii::$app->request->post('id');
$sql = 'UPDATE report SET edit_on = 1 WHERE id = '.$id;
$connection = \Yii::$app->db->createCommand($sql)->execute();
}
Соответственно изменил в скрипте
Код: Выделить всё
function changeEdit(){
var id = '<?= $model->id?>';
var data = {id:id};
navigator.sendBeacon("http://localhost/report/edit",data);
};
window.addEventListener('unload', chandeEdit);
Однако почему-то скрипт не видит эту страницу и выдает ошибку 404.
Re: Как принять данные js и записать их в БД?
Добавлено: 2022.05.19, 13:27
terrarium volition
levy писал(а): ↑2022.05.19, 13:10
В контроллере создал action:
Код: Выделить всё
public function actionEdit() {
$id = Yii::$app->request->post('id');
$sql = 'UPDATE report SET edit_on = 1 WHERE id = '.$id;
$connection = \Yii::$app->db->createCommand($sql)->execute();
}
Соответственно изменил в скрипте
Код: Выделить всё
function changeEdit(){
var id = '<?= $model->id?>';
var data = {id:id};
navigator.sendBeacon("http://localhost/report/edit",data);
};
window.addEventListener('unload', chandeEdit);
Однако почему-то скрипт не видит эту страницу и выдает ошибку 404.
Я не понимаю, что вы тут написали, в сети через $.ajax миллион способов передать данные.
По фреймворку тоже полно инфы. Почитайте, разберитесь.
И ещё совет: если хотите получить ответ, то изложите свою боль в виде вопроса.