HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/ridesyre-land/frontend/js/components/Modal.js
const Modal = () => {
    const modal = document.querySelector('[data-modal]');
    const buttonsClose = document.querySelectorAll('[data-modal-close]');
    const buttonsOpen = document.querySelectorAll('[data-modal-open]');
    const form = document.querySelector('form')

    if (!modal) return;

    buttonsOpen.forEach((item) => {
        if (!item) return;

        item.addEventListener('click', () => {
            if (modal.classList.contains('open')) {
                modal.classList.remove('open');
            } else {
                modal.classList.add('open');
            }
        });
    });

    buttonsClose.forEach((item) => {
        if (!item) return;

        item.addEventListener('click', () => {
            modal.classList.remove('open');
        });
    });

    form.addEventListener('submit', (e) => {
        e.preventDefault();
        const formData = new FormData(form);

        let object = {};
        formData.forEach(function(value, key){
            object[key] = value;
        });
        const json = JSON.stringify(object);

        fetch('/form.php', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
            },
            body: json
        })
          .then(result => {
              form.innerHTML('спасибо!');
          })
          .catch(err => {
              console.err(err);
          });

        return false;
    });
};

export default Modal;