Как нужно вызывать js-функцию, чтобы она брала данные с той формы которую отправили? И как передать через ajax или ID, или Class формы?
<button type="submit" class="button">Отправить</button>
async function sendForm(form) {
const data = {
name: form.querySelector("input[name='name']").value,
email: form.querySelector("input[name='email']").value,
phone: form.querySelector("input[name='phone']").value,
message: form.querySelector("textarea[name='message']").value,
formId: form.id,
formClass: form.className
}
try {
const response = await fetch('php/send.php', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(data)
});
if(response.ok) {console.log('Success send form')}
else console.log('Error send form', response);
}
catch(error) {console.log('Error: ' + error.message)}
}
document.querySelector('#form1').addEventListener('submit', (e) => {
e.preventDefault();
sendForm(event.target);
});
document.querySelector('#form2').addEventListener('submit', (e) => {
e.preventDefault();
sendForm(event.target);
});
В зависимости от формы нужно в PHP-скрипте менять тему письма.
$json = file_get_contents("php://input");
$data = json_decode($jsonData, true);
// get formId and formClass
$id = $data['formId'];
$class = $data['formClass'];
// this change type email message
Пытаюсь так:
let currentIndex = $(".js-practice_button.current").index();
Но значение всегда 0, у какой бы кнопки классcurrent
не присутствовал.
index
по умолчанию определяет индекс элемента среди соседей, а так как у каждой кнопки есть отдельный родитель... Ну да, получаете то, что получаете.const index = $('.js-practice_button.current').closest('li').index();
index
в качестве параметра селектор, то индекс будет определятся не среди соседей, а среди элементов, соответствующих селектору:const index = $('.js-practice_button.current').index('.js-practice_button');
const index = Array.prototype.findIndex.call(
document.querySelectorAll('.js-practice_button'),
n => n.classList.contains('current')
);
// или
const el = document.querySelector('.js-practice_button.current')?.parentNode;
const index = el ? [...el.parentNode.children].indexOf(el) : -1;
// или
let index = -1;
for (
let el = document.querySelector('.js-practice_button.current')?.closest('li');
el;
el = el.previousElementSibling, index++
) ;
@echo off
for %%l in (en kz au cz th) do (
xcopy /E /I /Q /Y ru %%l
)
Затем перейдите в командной строке CMD в эту папку и запустите скрипт.@echo off
for %%l in (en kz au cz th) do (
mklink /D %%l ru
)
Но тут потребуется запускать командную строку от имени администратора, иначе ссылки не создадутся. main
│ script.cmd
├───au
│ └───dir
│ │ index.html
│ ├───css
│ └───js
├───cz
│ └───dir
│ │ index.html
│ ├───css
│ └───js
├───en
│ └───dir
│ │ index.html
│ ├───css
│ └───js
├───kz
│ └───dir
│ │ index.html
│ ├───css
│ └───js
├───ru
│ └───dir
│ │ index.html
│ ├───css
│ └───js
└───th
└───dir
│ index.html
├───css
└───js
$(".box43z6r6QZ").click(function(){
var $el = $(this);
$el.addClass("hG8KlY3Q");
setTimeout(function(){
$el.removeClass("hG8KlY3Q");
}, 1000);
});
определять position относительно блока с position: relavive