Update pages.html
Browse files- pages.html +77 -113
pages.html
CHANGED
@@ -465,129 +465,94 @@ editor.Components.addType('custom-form', {
|
|
465 |
defaults: {
|
466 |
// HTML-код формы
|
467 |
content: `
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
<
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
<
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
<
|
489 |
-
<
|
490 |
-
<
|
491 |
-
|
492 |
-
|
493 |
-
</
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
// Скрипт для обработки отправки формы
|
508 |
-
script: function(props) {
|
509 |
-
const optionsSelect1 = this.querySelector('#options1');
|
510 |
-
const optionsSelect2 = this.querySelector('#options2');
|
511 |
-
const optionsSelect3 = this.querySelector('#options3');
|
512 |
-
|
513 |
-
// Обновление выпадающего списка 1 при загрузке
|
514 |
-
const options1 = props.dropdownOptions1.split(',').map(option => option.trim()).filter(option => option !== '');
|
515 |
-
options1.forEach(option => {
|
516 |
-
const optionElement = document.createElement('option');
|
517 |
-
optionElement.value = option;
|
518 |
-
optionElement.textContent = option;
|
519 |
-
optionsSelect1.appendChild(optionElement);
|
520 |
-
});
|
521 |
-
|
522 |
-
// Обновление выпадающего списка 2 при загрузке
|
523 |
-
const options2 = props.dropdownOptions2.split(',').map(option => option.trim()).filter(option => option !== '');
|
524 |
-
options2.forEach(option => {
|
525 |
-
const optionElement = document.createElement('option');
|
526 |
-
optionElement.value = option;
|
527 |
-
optionElement.textContent = option;
|
528 |
-
optionsSelect2.appendChild(optionElement);
|
529 |
-
});
|
530 |
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
538 |
});
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
},
|
553 |
-
body: JSON.stringify(data)
|
554 |
-
})
|
555 |
-
.then(response => response.json())
|
556 |
-
.then(data => {
|
557 |
-
console.log('Success:', data);
|
558 |
-
})
|
559 |
-
.catch((error) => {
|
560 |
-
console.error('Error:', error);
|
561 |
-
});
|
562 |
});
|
|
|
|
|
|
|
|
|
|
|
563 |
},
|
564 |
// Свойства, которые будут передаваться в скрипт
|
565 |
-
'script-props': ['submitUrl'
|
566 |
-
// Настройки для изменения URL отправки
|
567 |
traits: [
|
568 |
{
|
569 |
type: 'text',
|
570 |
name: 'submitUrl',
|
571 |
label: 'Submit URL',
|
572 |
changeProp: true
|
573 |
-
},
|
574 |
-
{
|
575 |
-
type: 'text',
|
576 |
-
name: 'dropdownOptions1',
|
577 |
-
label: 'Dropdown Options 1 (comma separated)',
|
578 |
-
changeProp: true
|
579 |
-
},
|
580 |
-
{
|
581 |
-
type: 'text',
|
582 |
-
name: 'dropdownOptions2',
|
583 |
-
label: 'Dropdown Options 2 (comma separated)',
|
584 |
-
changeProp: true
|
585 |
-
},
|
586 |
-
{
|
587 |
-
type: 'text',
|
588 |
-
name: 'dropdownOptions3',
|
589 |
-
label: 'Dropdown Options 3 (comma separated)',
|
590 |
-
changeProp: true
|
591 |
}
|
592 |
]
|
593 |
}
|
@@ -615,7 +580,6 @@ editor.Blocks.add('custom-form-block', {
|
|
615 |
|
616 |
|
617 |
|
618 |
-
|
619 |
|
620 |
|
621 |
// Добавление кнопки для открытия редактора кода
|
|
|
465 |
defaults: {
|
466 |
// HTML-код формы
|
467 |
content: `
|
468 |
+
<div class="container">
|
469 |
+
<form id="contactForm">
|
470 |
+
<h4>КЛУБ-ПРАКТИК. 255 техник для психолога - 2024</h4>
|
471 |
+
<div class="form-group">
|
472 |
+
<label for="name">Имя</label>
|
473 |
+
<input type="text" id="name" required>
|
474 |
+
</div>
|
475 |
+
|
476 |
+
<div class="form-group">
|
477 |
+
<label for="email">Почта</label>
|
478 |
+
<input type="email" id="email" required>
|
479 |
+
</div>
|
480 |
+
|
481 |
+
<div class="form-group">
|
482 |
+
<label for="phone">Телефон</label>
|
483 |
+
<input type="tel" id="phone" required>
|
484 |
+
</div>
|
485 |
+
|
486 |
+
<div class="form-group">
|
487 |
+
<label for="options">Выберите тариф</label>
|
488 |
+
<select id="options" required>
|
489 |
+
<option value="" disabled selected>Тариф</option>
|
490 |
+
<option>БИЗНЕС - 69 970р.</option>
|
491 |
+
<option>PREMIUM - 89 970р.</option>
|
492 |
+
<option>VIP - 149 990р.</option>
|
493 |
+
</select>
|
494 |
+
</div>
|
495 |
+
|
496 |
+
<div class="form-check">
|
497 |
+
<input type="checkbox" id="newsletter" required>
|
498 |
+
<label for="newsletter">Согласие на email рассылку</label>
|
499 |
+
</div>
|
500 |
+
|
501 |
+
<div class="form-group">
|
502 |
+
<a href="#" id="privacyPolicyLink">Политика конфиденциальности</a>
|
503 |
+
</div>
|
504 |
+
|
505 |
+
<button type="submit" class="btn-primary">ПЕРЕЙТИ К ОПЛАТЕ</button>
|
506 |
+
</form>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
507 |
|
508 |
+
<div id="privacyModal" class="modal">
|
509 |
+
<div class="modal-content">
|
510 |
+
<span class="close">×</span>
|
511 |
+
<iframe src="https://riverpsy.com/policy" frameborder="0"></iframe>
|
512 |
+
</div>
|
513 |
+
</div>
|
514 |
+
</div>
|
515 |
+
`, // Вставьте сюда HTML-код формы
|
516 |
+
// Скрипт для обработки отправки формы
|
517 |
+
document.addEventListener('DOMContentLoaded', function() {
|
518 |
+
const submitUrlInput = document.getElementById('submitUrl');
|
519 |
+
|
520 |
+
document.getElementById('contactForm').addEventListener('submit', function(event) {
|
521 |
+
event.preventDefault();
|
522 |
+
const formData = new FormData(this);
|
523 |
+
const data = {};
|
524 |
+
formData.forEach((value, key) => {
|
525 |
+
data[key] = value;
|
526 |
});
|
527 |
+
fetch(submitUrlInput.value, {
|
528 |
+
method: 'POST',
|
529 |
+
headers: {
|
530 |
+
'Content-Type': 'application/json'
|
531 |
+
},
|
532 |
+
body: JSON.stringify(data)
|
533 |
+
})
|
534 |
+
.then(response => response.json())
|
535 |
+
.then(data => {
|
536 |
+
console.log('Success:', data);
|
537 |
+
})
|
538 |
+
.catch((error) => {
|
539 |
+
console.error('Error:', error);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
540 |
});
|
541 |
+
});
|
542 |
+
});
|
543 |
+
|
544 |
+
script: function(props) {
|
545 |
+
// Вставьте сюда JavaScript-код для обработки формы
|
546 |
},
|
547 |
// Свойства, которые будут передаваться в скрипт
|
548 |
+
'script-props': ['submitUrl'],
|
549 |
+
// Настройки для изменения URL отправки
|
550 |
traits: [
|
551 |
{
|
552 |
type: 'text',
|
553 |
name: 'submitUrl',
|
554 |
label: 'Submit URL',
|
555 |
changeProp: true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
556 |
}
|
557 |
]
|
558 |
}
|
|
|
580 |
|
581 |
|
582 |
|
|
|
583 |
|
584 |
|
585 |
// Добавление кнопки для открытия редактора кода
|