Для передачи переменных из шаблона `sale.order.ajax` (файл `template.php`) в JavaScript-код (в частности, в файл `order_ajax.js`) в компоненте `BX.Sale.OrderAjaxComponent`, вы можете использовать несколько подходов. Рассмотрим наиболее распространенный из них.
### 1. Передача данных через `data-*` атрибуты
Вы можете добавить нужные переменные в `data-*` атрибуты какого-либо HTML-элемента в вашем шаблоне. Затем эти значения можно будет получить в JavaScript.
**Пример в `template.php`:**
```php
<div id="order_ajax_container"
data-custom-variable="<?= htmlspecialchars($customVariable) ?>"
data-another-variable="<?= htmlspecialchars($anotherVariable) ?>">
</div>
```
**Пример в `order_ajax.js`:**
```javascript
document.addEventListener('DOMContentLoaded', function () {
var container = document.getElementById('order_ajax_container');
var customVariable = container.getAttribute('data-custom-variable');
var anotherVariable = container.getAttribute('data-another-variable');
console.log(customVariable, anotherVariable);
});
```
### 2. Передача переменных через глобальные JavaScript-объекты
Вы можете создать глобальный объект и сохранить в нем значения из PHP:
**Пример в `template.php`:**
```php
<script>
window.ORDER_AJAX_DATA = {
customVariable: <?= json_encode($customVariable) ?>,
anotherVariable: <?= json_encode($anotherVariable) ?>
};
</script>
```
**Пример в `order_ajax.js`:**
```javascript
document.addEventListener('DOMContentLoaded', function () {
var customVariable = window.ORDER_AJAX_DATA.customVariable;
var anotherVariable = window.ORDER_AJAX_DATA.anotherVariable;
console.log(customVariable, anotherVariable);
});
```
### 3. Использование AJAX для передачи данных
Если ваши данные должны быть динамическими или изменяться в зависимости от взаимодействия с пользователем, вы можете использовать AJAX-запросы в JavaScript для получения переменной с сервера.
**Пример использования:**
1. Создайте обработчик на сервере, который будет возвращать необходимые данные.
2. Используйте `fetch` или `XMLHttpRequest` в `order_ajax.js` для получения данных.
**Пример AJAX запроса в `order_ajax.js`:**
```javascript
fetch('/path/to/your/handler')
.then(response => response.json())
.then(data => {
console.log(data.customVariable);
});
```
### Заключение
Выбор метода зависит от ваших требований и предпочтений. Для простоты и необходимости работы с небольшими данными хорошо подойдет первый или второй метод. Если данные нужно постоянно обновлять или они становятся доступными по событию, то лучший выбор - это AJAX.