foreach ( $Select as $List ) {

   print $HTML = '

       <button id="btn_'. $this->ID .'" onclick="Modal( '. $this->ID .', '. 
       $this->ID .' )">'. $Name .'</button>

   ';

   // My modal
   print $HTML = '<div id="modal_'. $this->ID .'" class="modal fix">

      echo $this->ID;

   </div>';

}

echo '
    <script>
        function Modal( IDModal, IDBtn ) {

           const MyBtn   = document.getElementById( "btn_" + id ).id;

           const MyModal = document.getElementById( "modal_" + IDModal ).id;

           MyModal.classList.add("show");

        }
     </script>
';

Когда я нажимаю кнопку, чтобы открыть его производный режим, я получаю следующую ошибку

Uncaught TypeError: Невозможно прочитать свойство 'add' из неопределенного

0
mehid 26 Окт 2019 в 23:57

1 ответ

Лучший ответ
echo '
    <script>
        function Modal( IDModal, IDBtn ) {
           // remove .id and use  `IDBtn` also
           const MyBtn   = document.getElementById( "btn_" + IDBtn );
           // remove .id
           const MyModal = document.getElementById( "modal_" + IDModal );
           MyModal.classList.add("show");
        }
     </script>
';

Также вы можете упростить вывод, закрыв php-тег с помощью ?> и используя простую html-разметку и js-код:

// closing previous php-code
?>
<!-- Simple output of tags and js-codes -->
<script>
    function Modal( IDModal, IDBtn ) {
        // remove .id and use  `IDBtn` also
        const MyBtn   = document.getElementById( "btn_" + IDBtn );
        // remove .id
        const MyModal = document.getElementById( "modal_" + IDModal );
        MyModal.classList.add("show");
    }
</script>
2
u_mulder 26 Окт 2019 в 21:00