сменить название кнопки после клика

100
17 апреля 2021, 20:50

Файл js:

function favorite(id) {
        jQuery.ajax({
            url: "favorite.php",
            method: "POST",
            data: { id: id }
   });
}

php:

$id = text($_POST['id']);
if ($id){
    $q = DB::$dbs->prepare("SELECT * FROM `favorite` WHERE `stantion_id` = ? AND `user` = ? LIMIT 1");
    $q->execute([$id,App::user()->id]);
    if (!$no = $q->fetchObject()) {
    $q = DB::$dbs->prepare("INSERT INTO `favorite` (`stantion_id`,`user`) VALUES (?,?)");
    $q->execute([$id,App::user()->id]);
    $ok = 'add';
    }
    else
    {
    DB::$dbs->query("DELETE FROM `favorite` where `stantion_id` = ? AND `user` = ?",array($id,App::user()->id));
    $ok = 'del';
    }
}
$out = array(
    'ok' => $ok,
);
header('Content-Type: text/json; charset=utf-8');
echo json_encode($out);

html:

<button onclick="favorite('<?= $id ?>'); return false;">В избранное</button>

После клику по кнопке, нужно заменить надпись на кнопке

<button onclick="favorite('<?= $id ?>'); return false;">Удалить с избранного</button>

Как это сделать?

Answer 1

Можно менять к примеру так:

function favorite(el, id) { 
  jQuery.ajax({ 
    url: "favorite.php", 
    method: "POST", 
    data: { 
      id: id 
    } 
  }).done(function(response) { 
    el.innerText = response.data.ok == 'add' ? "Удалить с избранного" : "В избранное"; 
  }); 
}
<button onclick="favorite(this, '<?= $id ?>')">В избранное</button>

Естественно проверку уже решите для себя сами, в зависимости от того, что вернул сервер.

READ ALSO
Custom permalinks

Custom permalinks

суть проблемы такова , есть страница wwwsite/kursi и так же есть родители с дочерними страницами пример www

100
Удаление дублей в массиве

Удаление дублей в массиве

есть первый массив:

85
написать функцию роутер php

написать функцию роутер php

на процедурке без ООП и классов можно сделать роутер?

89
php страница/калькулятор с css в HTML

php страница/калькулятор с css в HTML

Можно ли перенести калькулятор из indexphp вместе со стилями в index

97