Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как правильно работать с динамической функцией (https://javascript.ru/forum/events/71142-kak-pravilno-rabotat-s-dinamicheskojj-funkciejj.html)

LoGwi-N 28.10.2017 22:25

Как правильно работать с динамической функцией
 
Есть небольшой лэндинг, решил к нему прикрутить простейшую админку. На сайте есть раздел отзывы. Понятное дело неплохо бы их премодерировать. Отзывы хранятся в БД.
Вывожу динамически таблицу

<?php 
$adds = mysqli_query($conDB, "SELECT * 
FROM `reviews`
ORDER BY `id` DESC");
while ($row = mysqli_fetch_assoc($adds)) {
?> ...


Все норм.
Далее идея такова, в последней колонке сделать кнопку ON/OFF, чтобы выключать или выключать отзыв.
Пробую реализовать вот так, не получается.

<td>
        <button onclick="check<?php echo $row['id']; ?>();">On/Off</button>
        <script type="text/javascript">
          function check<?php echo $row['id']; ?>() {
            <?php $row = mysqli_query($conDB, "SELECT * FROM `showre` WHERE `id` = '$id'");
            $check = mysqli_fetch_assoc($check); ?>
            if (<?php echo $row['showre']?>==0) <?php echo "0"; ?>
          }
        </script>
      </td>

laimas 29.10.2017 15:09

PHP и Javasacript языки не только разные, но и будучи различными по назначению выполняются и в разных средах, и в разное время. РНР, это серверный язык, его задача отдать клиенту html код запрашиваемой страницы. А Javaqscript язык клиентский и будет исполняться после получения страницы, в которой он определен или при загрузке ее, к которой подключен.

Скрестить их и получить один язык не получится. А определять функции и поведение на клиенте некими идентификаторами на сервере посредством РНР, это плохо.

Клиент общается с сервером посредством запросов и параметрами определенными в этом запросе. Один и частных случаев, это передача серверу формы от клиента, в которой сделан выбор. Именно форма в данном случае вам и нужна. Научитесь формировать форму как часть html страницы, принимать ее на сервере, обрабатывать ее данные и использовать для запросов к БД.

Следующий шаг (если требуется), это асинхронный обмен с сервером, но от передачи формы по сути это ничем не отличается.


Часовой пояс GMT +3, время: 21:35.