0

Есть кнопки с атрибутами data-id

<button id="updatedetail" data-id="1">Редактировать</button>
<button id="updatedetail" data-id="2">Редактировать</button>
<button id="updatedetail" data-id="3">Редактировать</button>

Далее следует вывод данных из БД на php

<div id="detailname">

<?php $detail_object = mysqli_query ($connection, "SELECT * FROM detail WHERE id='...'"); $detail = mysqli_fetch_assoc ($detail_object); ?>

<p><?php echo $detail['name']; ?></p>

</div>

Как при нажатии кнопки передать значение атрибута в SQL запрос, а конкретно в часть WHERE id='...' ?

P.S. Пробовал ajax, но почему-то на моем примере не работает

document.querySelectorAll('#updatedetail').forEach(e => {
  e.addEventListener('click', () => {
    var showid = e.dataset.id;
    const request = new XMLHttpRequest();
    const url = 'modal.php'; 
    const data = {id: showid}
request.open(&quot;POST&quot;, url, true);
request.setRequestHeader(&quot;Content-type&quot;, &quot;text/plain; charset=UTF-8&quot;);
request.addEventListener(&quot;readystatechange&quot;, () =&gt; {
    if (request.readyState === 4 &amp;&amp; request.status === 200) {
        modal.innerHTML = request.responseText;
    } else {
        console.log(response);
    }
});
request.send(data);

}); });

  • Что именно с ajax запросом у вас не получается? – Алексей Шиманский Jun 28 '22 at 05:25
  • @АлексейШиманский , не понимаю, как использовать ajax в сочетании с SQL – Александр Зинченко Jun 28 '22 at 10:46
  • Ты уже написал ajax и столкнулся с проблемой или в целом не знаешь про ajax ничего, кроме что он существует?)) Если первое - добавь в вопрос, напиши что не получается – Алексей Шиманский Jun 28 '22 at 10:51
  • @АлексейШиманский , дополнил описание вопроса – Александр Зинченко Jun 28 '22 at 11:31
  • А что подставляешь в итоге в \id`='...'"`? данные приходят вообще?................. + вместо устаревшего ещё 10 лет назад XHR посмотри в сторону fetch, проще использовать и легче отследить все манипуляции.... ....в целом тебе нужно воспользоваться отладкой как на фронте так и на бэке. чтобы посмотреть где что у тебя происходит – Алексей Шиманский Jun 28 '22 at 12:17
  • В id='...'" мне нужно подставить data-id из ссылки, на которую кликнули – Александр Зинченко Jun 28 '22 at 12:19
  • это понятно.......ну ты вот отправляешь...на сервере получается должен прилететь $_POST['id']..... ты его подставляешь? или ты не знаешь что подставлять? – Алексей Шиманский Jun 28 '22 at 12:20
  • Я подставил WHERE id='" . $_POST['id'] . "', но ничего не передается – Александр Зинченко Jun 28 '22 at 12:39
  • А ты посмотрел, вообще есть такое значение на бэке? Во-вторых, как ты вычислил, что не передаётся? https://ru.stackoverflow.com/a/701146/191482 - почитай про то, как велючить отображение ошибок и как отлаживать свой код – Алексей Шиманский Jun 28 '22 at 12:45

1 Answers1

0

если ловишь значени id через POST, то

$id = $_POST['updatedetail'];

если через GET то,

$id = isset($_GET['id']) ? $_GET['id'] : null;

ну а в SQL просто передаешь $id

"SELECT * FROM `detail` WHERE `id`='{$id}'"
Denis A
  • 91