*/
$this->registerJs(<<<JS
- function ajaxLogSave(id,val) {
+ function ajaxLogSave(id, val) {
$.ajax({
url: '/api/integration-save/',
method: 'POST',
- data: '&id='+id+'&val='+val+'&entity=$entity&export_id=$export_id',
- success: function(data){
+ data: '&id=' + id + '&val=' + val + '&entity=$entity&export_id=$export_id',
+ success: function(data) {
alert(data);
+ // После успешного сохранения удаляем кнопки
+ $('.save-guid, .cancel-guid').remove();
}
});
}
-
- $('td.tdd').each(function (index, element) {
- input_search($(element).attr('id'),$(element).attr('data-id'));
- });
- $('.poisk-item').change(function() {
- var id=$(this).attr('data-id');
- get_select_search(id);
- });
+ // Функция для отображения кнопок "Сохранить" и "Отмена"
+ function showActionButtons(inputElement) {
+ // Удаляем старые кнопки перед добавлением новых
+ $('.save-guid, .cancel-guid').remove();
+
+ // Кнопка "Сохранить"
+ var saveButton = $('<button class="save-guid btn btn-success">Сохранить</button>');
+ var cancelButton = $('<button class="cancel-guid btn btn-danger">Отмена</button>');
+
+ // Вставляем кнопки после элемента input
+ inputElement.after(cancelButton).after(saveButton);
+
+ // Обработчик нажатия на кнопку "Сохранить"
+ saveButton.click(function() {
+ var id = inputElement.attr('data-id');
+ var val = inputElement.val();
+ if (confirm('Вы уверены, что хотите сохранить изменения?')) {
+ ajaxLogSave(id, val); // Запуск сохранения данных через AJAX
+ }
+ $('.save-guid').remove(); // Удаляем кнопки
+ $('.cancel-guid').remove(); // Удаляем кнопки
+ });
+ // Обработчик нажатия на кнопку "Отмена"
+ cancelButton.click(function() {
+ inputElement.val(''); // Очищаем поле
+
+
+ // Получаем data-id из inputElement
+ var dataId = inputElement.attr('data-id');
+
+ // Находим соответствующий select по name атрибуту
+ var relatedSelect = $('select[name="' + dataId + '"]');
+
+ // Очищаем значение найденного select
+ if (relatedSelect.length > 0) {
+ relatedSelect.val(null).trigger('change'); // Очищаем и обновляем состояние select2
+ }
+ $('.save-guid').remove(); // Удаляем кнопки
+ $('.cancel-guid').remove(); // Удаляем кнопки
+ });
+ }
+ // Обработка изменения значения в поле guid_input
$('.guid_input').change(function() {
- var id=$(this).attr('data-id');
- var val=$(this).val();
- ajaxLogSave(id,val);
+ var inputElement = $(this);
+ showActionButtons(inputElement); // Отображаем кнопки после изменения
});
- $('.poisk-item').click(function() {
- var id=$(this).attr('data-id');
- if($(this).val()!=='' && $(this).val()!==' ') get_select_search(id);
- });
+
+ /* $('.poisk-item').change(function() {
+ var id = $(this).attr('data-id');
+ get_select_search(id);
- function get_select_search(id) {
+ // Отображение кнопок после выбора значения
+ var guidInput = $(".guid_input[data-id=" + id + "]");
+ showActionButtons(guidInput);
+ });*/
+
+
+ /*$('.poisk-item').click(function() {
+ var id = $(this).attr('data-id');
+ if ($(this).val() !== '' && $(this).val() !== ' ') {
+ get_select_search(id);
+ }
+ });*/
+
+ // Добавляем прослушиватель события на все select'ы с id, начинающимся на "w"
+ $('select[id^="w"]').on('change', function() {
+ // Получаем значение выбранного элемента select
+ var selectedValue = $(this).val();
+
+ // Получаем значение атрибута name
+ var selectName = $(this).attr('name');
+
+ // Ищем соответствующий input с data-id, равным атрибуту name селекта
+ var relatedInput = $('input[data-id="' + selectName + '"]');
+
+ // Если найден соответствующий input, обновляем его значение
+ if (relatedInput.length > 0) {
+ relatedInput.val(selectedValue);
+
+ // Показываем кнопки "Сохранить" и "Отмена"
+ showActionButtons(relatedInput);
+ }
+ });
+ // поиск реализован через select2
+ /*function get_select_search(id) {
$.ajax({
url: '/api/poisk-item/',
method: 'POST',
- data: '&id='+id+'&search='+$('#std_'+id).val()+'&tip=" . $entity . "',
- success: function(data){
- $('#std_'+id).after('<div style=\"position:absolute;\">'+data+'</div>');
+ data: '&id=' + id + '&search=' + $('#std_' + id).val() + '&tip=" . $entity . "',
+ success: function(data) {
+ $('#std_' + id).after('<div style="position:absolute;">' + data + '</div>');
}
});
- }
+ }*/
JS);
+
+
?>
<div class="p-8">