Как я могу получить спа -приложение с формой на основе работы по почте?Javascript

Форум по Javascript
Ответить
Anonymous
 Как я могу получить спа -приложение с формой на основе работы по почте?

Сообщение 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, чтобы обработать ее, но результат такая же - страница просто обновляется. Есть ли способ найти другое решение этой проблемы?


Подробнее здесь: https://stackoverflow.com/questions/796 ... st-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»