Итак, у меня есть приложение SPA внутри WordPress, он просто загружает файлы PHP в мою тему: < /p>
add_action('wp_ajax_wczytaj_sekcje_profilu', 'ajax_wczytaj_sekcje_profilu');
function ajax_wczytaj_sekcje_profilu() {
if (!is_user_logged_in()) {
wp_die('Musisz być zalogowany.');
}
$current_user = wp_get_current_user();
$stripe_id = get_field('stripe_id_klienta', 'user_' . $current_user->ID);
set_query_var('current_user', $current_user);
set_query_var('stripe_id', $stripe_id);
$sekcja = sanitize_text_field($_POST['sekcja']);
switch ($sekcja) {
case 'materialy':
get_template_part('user-profile-components/client-asetss');
break;
case 'kontakt':
get_template_part('user-profile-components/kontakt');
break;
case 'faktury':
get_template_part('user-profile-components/fakturownia-invoices');
break;
case 'platnosci':
get_template_part('user-profile-components/stripe-subscription');
get_template_part('user-profile-components/stripe-payments');
break;
case 'raporty':
get_template_part('user-profile-components/seo-raports');
break;
case 'profil':
default:
get_template_part('user-profile-components/user-info');
break;
}
wp_die();
}
< /code>
profil.js (файл ajax) < /p>
document.addEventListener('DOMContentLoaded', () => {
document.querySelectorAll('#profil-menu a').forEach(link => {
link.addEventListener('click', function (e) {
e.preventDefault();
const sekcja = this.dataset.sekcja;
const contentDiv = document.getElementById('profil-content');
contentDiv.innerHTML = '';
const newUrl = new URL(window.location);
newUrl.searchParams.set('sekcja', sekcja);
window.history.pushState({}, '', newUrl);
const formData = new FormData();
formData.append('action', 'wczytaj_sekcje_profilu');
formData.append('sekcja', sekcja);
fetch('/wp-admin/admin-ajax.php', {
method: 'POST',
body: formData
})
.then(res => res.text())
.then(html => contentDiv.innerHTML = html)
.catch(err => contentDiv.innerHTML = 'Błąd ładowania sekcji.');
});
});
// Załaduj sekcję na podstawie parametru URL przy pierwszym załadowaniu strony
const initialSekcja = new URL(window.location).searchParams.get('sekcja');
if (initialSekcja) {
const formData = new FormData();
formData.append('action', 'wczytaj_sekcje_profilu');
formData.append('sekcja', initialSekcja);
const contentDiv = document.getElementById('profil-content');
contentDiv.innerHTML = '';
fetch('/wp-admin/admin-ajax.php', {
method: 'POST',
body: formData
})
.then(res => res.text())
.then(html => contentDiv.innerHTML = html)
.catch(err => contentDiv.innerHTML = 'Błąd ładowania sekcji.');
}
});
< /code>
В одном из моих разделов (файлов) я пытаюсь загрузить файл в Google Drive через форму post, но когда я нажимаю обновления «Отправить страницу», и ничего не происходит из -за вышеупомянутого кода. < /p>
Wyślij na Google Drive
< /code>
Я попытался создать функцию для загрузки файлов в functions.php и js ajax file, чтобы обработать ее, но результат такая же - страница просто обновляется. Есть ли способ найти другое решение этой проблемы?
Подробнее здесь: https://stackoverflow.com/questions/796 ... st-working
Как я могу получить спа -приложение с формой на основе работы по почте? ⇐ Javascript
Форум по Javascript
1748270939
Anonymous
Итак, у меня есть приложение SPA внутри WordPress, он просто загружает файлы PHP в мою тему: < /p>
add_action('wp_ajax_wczytaj_sekcje_profilu', 'ajax_wczytaj_sekcje_profilu');
function ajax_wczytaj_sekcje_profilu() {
if (!is_user_logged_in()) {
wp_die('Musisz być zalogowany.');
}
$current_user = wp_get_current_user();
$stripe_id = get_field('stripe_id_klienta', 'user_' . $current_user->ID);
set_query_var('current_user', $current_user);
set_query_var('stripe_id', $stripe_id);
$sekcja = sanitize_text_field($_POST['sekcja']);
switch ($sekcja) {
case 'materialy':
get_template_part('user-profile-components/client-asetss');
break;
case 'kontakt':
get_template_part('user-profile-components/kontakt');
break;
case 'faktury':
get_template_part('user-profile-components/fakturownia-invoices');
break;
case 'platnosci':
get_template_part('user-profile-components/stripe-subscription');
get_template_part('user-profile-components/stripe-payments');
break;
case 'raporty':
get_template_part('user-profile-components/seo-raports');
break;
case 'profil':
default:
get_template_part('user-profile-components/user-info');
break;
}
wp_die();
}
< /code>
profil.js (файл ajax) < /p>
document.addEventListener('DOMContentLoaded', () => {
document.querySelectorAll('#profil-menu a').forEach(link => {
link.addEventListener('click', function (e) {
e.preventDefault();
const sekcja = this.dataset.sekcja;
const contentDiv = document.getElementById('profil-content');
contentDiv.innerHTML = '';
const newUrl = new URL(window.location);
newUrl.searchParams.set('sekcja', sekcja);
window.history.pushState({}, '', newUrl);
const formData = new FormData();
formData.append('action', 'wczytaj_sekcje_profilu');
formData.append('sekcja', sekcja);
fetch('/wp-admin/admin-ajax.php', {
method: 'POST',
body: formData
})
.then(res => res.text())
.then(html => contentDiv.innerHTML = html)
.catch(err => contentDiv.innerHTML = 'Błąd ładowania sekcji.');
});
});
// Załaduj sekcję na podstawie parametru URL przy pierwszym załadowaniu strony
const initialSekcja = new URL(window.location).searchParams.get('sekcja');
if (initialSekcja) {
const formData = new FormData();
formData.append('action', 'wczytaj_sekcje_profilu');
formData.append('sekcja', initialSekcja);
const contentDiv = document.getElementById('profil-content');
contentDiv.innerHTML = '';
fetch('/wp-admin/admin-ajax.php', {
method: 'POST',
body: formData
})
.then(res => res.text())
.then(html => contentDiv.innerHTML = html)
.catch(err => contentDiv.innerHTML = 'Błąd ładowania sekcji.');
}
});
< /code>
В одном из моих разделов (файлов) я пытаюсь загрузить файл в Google Drive через форму post, но когда я нажимаю обновления «Отправить страницу», и ничего не происходит из -за вышеупомянутого кода. < /p>
Wyślij na Google Drive
< /code>
Я попытался создать функцию для загрузки файлов в functions.php и js ajax file, чтобы обработать ее, но результат такая же - страница просто обновляется. Есть ли способ найти другое решение этой проблемы?
Подробнее здесь: [url]https://stackoverflow.com/questions/79639147/how-can-i-have-spa-application-with-form-based-on-post-working[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия