Как использовать переменную php внутри тегов скрипта?

У меня есть эта логика в моем приложении для изменения количества товара в корзине:

<script>
const options = document.querySelectorAll('.quantity')

Array.from(options).forEach(function (element) {
    element.addEventListener('change', function() {
        const id = element.getAttribute('data-id')

        axios.patch(`{{ Route::currentRouteName(), ${id} }}`, {
            quantity: this.value
        })
        .then(function (response) {
            window.location.href = '{{ route('cartIndex', App::getLocale()) }}'
        })
        .catch(function (error) {
            window.location.href = '{{ route('cartIndex', App::getLocale()) }}'
        });
        })
});
</script>

Линия

 axios.patch(`{{ Route::currentRouteName(), ${id} }}`, {
            quantity: this.value
        })

Раньше было так:

 axios.patch(`/cart/${id}`, {
            quantity: this.value
        })

Я сделал функционал локализации. Теперь мне нужно передать параметр {lang} каждому маршруту, поэтому я использую {{ Route::currentRouteName() }}. однако остальная часть URL-адреса хранится в переменной javascript.

Как лучше всего получить значение переменной id javascript и передать его методу Route::currentRouteName() PHP?

Вы не должны включать встроенные скрипты в файл PHP. Вместо этого сохраните сценарии в отдельном файле и используйте атрибут src, чтобы связать сценарий со страницей. Пожалуйста, выполните поиск, как передавать переменные в этом случае, это запрашивается несколько раз в день.

Teemu 16.02.2023 09:20

«Как лучше всего получить значение переменной JavaScript id и передать его PHP-методу Route::currentRouteName()?» - нет, потому что без предварительного запроса к серверу это, конечно, невозможно. Пояснение, см. дубликат.

CBroe 16.02.2023 11:50
Что такое двойные вопросительные знаки (??) в JavaScript?
Что такое двойные вопросительные знаки (??) в JavaScript?
Как безопасно обрабатывать неопределенные и нулевые значения в коде с помощью Nullish Coalescing
Асинхронная передача данных с помощью sendBeacon в JavaScript
Асинхронная передача данных с помощью sendBeacon в JavaScript
В современных веб-приложениях отправка данных из JavaScript на стороне клиента на сервер является распространенной задачей. Одним из популярных...
Принципы ООП в JavaScript
Принципы ООП в JavaScript
Парадигма объектно-ориентированного программирования имеет 4 основных принципа,
Laravel с Turbo JS
Laravel с Turbo JS
Turbo - это библиотека JavaScript для упрощения создания быстрых и высокоинтерактивных веб-приложений. Она работает с помощью техники под названием...
Слишком много useState? Давайте useReducer!
Слишком много useState? Давайте useReducer!
Современный фронтенд похож на старую добрую веб-разработку, но с одной загвоздкой: страница в браузере так же сложна, как и бэкенд.
Типы данных JavaScript
Типы данных JavaScript
В JavaScript существует несколько типов данных, включая примитивные типы данных и ссылочные типы данных. Вот краткое объяснение различных типов данных...
2
2
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я предлагаю вместо маршрута использовать URL-адрес. Вы можете использовать это, выполнив следующие действия:

let lang = "{{ $lang }}";

let url = "{{'Route::currentRouteName()'}}" + '/' + lang;

Или

let lang = @json($lang);

let url = @json('/cart/' . $lang);

Другие вопросы по теме