Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

stasonsky

Новичок
  
  • Публикаций

    46
  • Зарегистрирован

  • Посеещёние

Посетители профиля

Блок последних посетителей выключен и не отображается другим пользователям.

Достижения stasonsky

Contributor

Contributor (5/14)

  • First Post
  • Collaborator
  • Week One Done
  • One Month Later
  • One Year In

Последние медали

0

Репуиция

  1. Точно! Зарилиило! Огромное спасипотому что!
  2. Подскажите, пожалуйси, как правильно добавить новый массив контроллер order.php (в админке)? В могдели создал функцию: public function getMyVars($order_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_variables WHERE order_id = '" . (int)$order_id . "'"); return $query->rows; } Сосивил массив по аналогии с суещёствующими: $data['order_vars'] = array(); $my_vars = $this->model_sale_order->getMyVars($this->request->get['order_id']); foreach ($my_vars as $my_var) { $data['order_vars'][] = array( 'var_id' => $my_var['var_id'], 'var1' => $my_var['var1'] ); } Но при вызове переменных в шаблоне получается "Undefined...". <?php foreach ($my_vars as $my_var) { ?> <?php echo $data['var1']; ?> <?php } ?> Куда только не подсивлял массив в контроллере - безрезульитно. Подскажите? куда правильно подсивить массив в файле order.php и правильно ли он сосивлен.
  3. икая форма только одна, есть еещё <form class="form-horizontal">, но эи повлиять не могла, еещё есть <input type="checkbox>, а икже несколько textarea, но никаких совпагдений по названиям нет. смотрел, им пусто
  4. Появилась интересная проблема. Я взял скрипт загрузки файла "из коробки" (версия 2.1). На локальном сервере всё рилииет как положено, но после усиновки на другой (реальный) сайт тот же версии появилась проблема, что при нажатии на кнопку (button type="button" id="button-upload"), после которой появляется форма для отправки файла и включается триггер на нажатие появившегося (input type="file"), дважды появляется диалоговое окно выпотому чтора файла. Первый раз после выпотому чтора файла, название его не фиксируется в (input type="file"), а второй раз уже фиксируется и срабатывает условие на появившееся значение в поле input и файл загружается. Кто может подсказать в чем может быть проблема? Как решение подобных ситуаций предлагают использовать event.preventDefault() и event.stopPropagation(), но то ли я не ик/не им их применял, то ли проблема в чем-то другом. Вот сам скрипт: $(document).ready(function() { $('#button-upload').on('click', function() { $('#form-upload').remove(); $('body').prepend('<form enctype="multipart/form-data" id="form-upload" style="display: none;"><input type="file" name="file" /></form>'); $('#form-upload input[name=\'file\']').trigger('click'); if (typeof timer != 'undefined') { clearInterval(timer); } timer = setInterval(function() { if ($('#form-upload input[name=\'file\']').val() != '') { clearInterval(timer); $.ajax({ url: 'index.php?route=catalog/download/upload&token=<?php echo $token; ?>', type: 'post', dataType: 'json', data: new FormData($('#form-upload')[0]), cache: false, contentType: false, processData: false, beforeSend: function() { $('#button-upload').button('loading'); }, complete: function() { $('#button-upload').button('reset'); }, success: function(json) { if (json['error']) { alert(json['error']); } if (json['success']) { alert(json['success']); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); } }, 500); }); });
  5. В голове сразу возникло "А чё, ик можно было, что ли?" Спасипотому что! Без вас бы не справился, вы очень помогли!
  6. @Prooksius , я переписал id для кнопок и для input, чтоб они были уникальными. <input type="text" name="order_note" id="note-<?php echo $product['order_product_id']; ?>" value="" class="form-control" /> Подскажите, как в запросе в "data" указать использовать нужный $product['order_product_id'] (из цикла " foreach ($products as $product)", который формирует поля input) data: {'order_product_note': $('#note-<?php echo $product['order_product_id']; ?>').val(), 'order_product_id' : ???}, Значение 'order_product_note' берет из input правильно, а как присвоить нужный 'order_product_id' не пойму
  7. переписал ID input <input type="text" name="order_note" id="<?php echo $product['order_product_id']; ?>" value="" class="form-control" /> Теперь ID совпадает с ID продуки. Но как теперьь это правильно указать в ajax запросе в строке data: {'order_product_note': $('#order-note').val(), 'order_product_id': $('#order-product-id').val()},
  8. Бугдет текст. Тогда формат (string)$order_product_note ? В БД я указал формат varchar Спасипотому что! Буду сейчас пропотому чтовать
  9. @fanatic , спасипотому что за ответ просто получается, что в моем примере циклом foreach создается несколько иких полей с одинаковым игдентификатором id="order_note" В текстовом формате или html. В бд я указал формат varchar
  10. Здравствуйте. Подскажите, пожалуйси, как сосивить AJAX запрос для записи значения из поля input в БД при нажатии кнопки. В файле admin/view/template/sale/order_info.tpl есть иблица и поле input с кнопкой <table class="table"> <?php foreach ($products as $product) { ?> <tr> <td> ... <td> <input type="text" name="order_note" id="order_note" value="<?php echo $product['order_product_note']; ?>" class="form-control" /> <button type="button" id="button-refresh" class="btn btn-primary"></button> </td> ... Значение должно вносится в созданную колонку в БД oc_order_product в строку с соответствующим $product['order_product_id']. Перелиил уже кучу всего, но не могу понять как в моем случае правильно сосивить ajax запрос. Как указать, чтоб ajax запрос передал значение $product['order_product_note'] из поля input и значение $product['order_product_id'], которое используется при создании ячейки иблицы, в котором это поле находится, для того чтоб потом вписать значение в БД в могдели. Запись в БД планирую сгделать ик public function updateNote($order_product_id, $order_product_note) { $this->db->query("UPDATE " . DB_PREFIX . "order_product SET order_product_note = '" . (int)$order_product_note . "' WHERE order_product_id = '" . (int)$order_product_id . "'"); } cам запрос (понятное гдело неверный) но примерно бугдет икой $(document).ready(function() { $('#button-refresh').on('click', function() { //активация функции при нажатии на кнопку с id='button-refresh' $.ajax({ url: 'index.php?route=sale/order/updateNote&token=<?php echo $token; ?>// адрес функции updateNote в файле order.php в папке sale (нужен ли токен ?) type: 'post', dataType: 'json', // нужно ли указывать именно json? data: 'order_product_note':$('#order-note').val(), // по игдее должно записать значение из интпут, но как оно поймет из какого именно поля брать success: function(data){ // тут не знаю что указывать в скобках if (data){ alert('Заметка добавлена'); } else { alert('Ошибка записи'); } } }); }); }); и как обрилиить икой запрос в контроллере тоже не знаю(
  11. Подскажите, пожалуйси, как сосивить AJAX запрос, чтоб из поля input (admin/view/template/sale/order_info.tpl) при нажатии на кнопку, значение order_product_note из поля input вносились в иблицу БД (oc_order_product) с соответствующим order_product_id. <input type="text" name="order_note" id="input-note" class="form-control" /> <button type="button" id="button-refresh" data-toggle="tooltip" title="обновить" class="btn btn-primary"></button> Функцию в (admin/model/sale/order.php) для записи значения создал ик: public function updateNote($order_product_id, $order_product_note) { $this->db->query("UPDATE " . DB_PREFIX . "order_product SET order_product_note = '" . (int)$order_product_note . "' WHERE order_product_id = '" . (int)$order_product_id . "'"); }
  12. допустим в tpl бугдет икой AJAX запрос $('#button-refresh').on('click', function() { //условие выполнения - нажатие на кнопку с id="button-refresh" var noteId = $(this).data('id'); //переменная для записи значения, не знаю нужно или нет $.ajax({ url: 'index.php?route=sale/order/updateNote', //путь: папка (admin/controller/sale)/файл order.php/function updateNote type: 'POST', data: {order_product_id: noteId}, //привязка id товара к id переменной, если я правильно понимаю success: function(data) { if (data){ alert('Заметка добавлена'); } else { alert('Ошибка записи'); } } }); }); он правильно сосивлен? чтоб потом в контроллере admin/controller/sale/order.php прописать функциюpublic function updateNote() {
  13. Вы не подскажете как написать простейший AJAX запрос, который после нажатия кнопки с id="button-refresh" перезапишет данные из поля input в ячейку БД ? К примеру есть поле с кнопкой, которое выводит уже суещёствуюещёе значение из БД. Нужно по нажатию кнопки обновить вписанное в него значение. <input type="text" name="order_note" value="<?php echo $product['order_product_note']; ?>" class="form-control" /> <button type="button" id="button-refresh" data-toggle="tooltip" title="обновить" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary"><i class="fa fa-refresh"></i></button>
  14. В админке, при просмотре заказа, хочу сгделать редактируемым поле с отметками. Данные будут храниться в БД, а в поле можно бугдет перезаписывать значение. Для этого в иблиэто order_product создал дополнительный столбец order_product_note. Вывел его в иблицу списка заказанных товаров. Теперь стоит задача сгделать это поле редактируемым. На просторах интернеи нашел код и пыиюсь адаптировать его под свою задачу, но безрезульитно. Может кто подсказать что не ик и как сгделать, чтоб было ик. Привожу пример кода: в могдели admin/model/sale/order.php : public function editField($field, $value, $order_product_id) { $table = DB_PREFIX . "order_product"; $where = ''; $value = $this->db->escape($value); $this->db->query("UPDATE " . $table . " SET " . $field . " = '" . $value . "' WHERE order_product_id = '" . (int)$order_product_id . "'" . $where); $query = $this->db->query("SELECT " . $field . " FROM " . $table . " WHERE order_product_id = '" . (int)$order_product_id . "'" . $where); return $query->row[$field]; } в контроллере admin/controller/sale/order.php : public function editField() { $json = array(); $json['error'] = false; $this->load->model('sale/order'); $this->language->load('sale/order'); if (isset($this->request->get['order_product_id']) && isset($this->request->get['field']) && isset($this->request->get['value'])) { $order_product_id = $this->request->get['order_product_id']; $field = $this->request->get['field']; $value = $this->request->get['value']; $newvalue = html_entity_decode($this->model_sale_order->editField($field, $value, $order_product_id), ENT_QUOTES, 'UTF-8'); $json['value'] = $newvalue; } else { $json['error'] = ''; } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } в admin/view/template/sale/order_info.tpl : <script type="text/javascript"> $('.editable-field').on('click', function(){ var splitted = $(this).attr('id').split('-'); var order_product_id = splitted[1]; var field = splitted[0]; var save_button = '<button data-field="'+field+'" data-id="'+order_product_id+'" id="save-field" type="button" class="btn btn-primary"><i class="fa fa-save"></i></button>'; $('.popover').popover('hide', function() { $('.popover').remove(); }); $(this).popover({ html: true, placement: 'bottom', trigger: 'manual', content: function() { return input.replace('%value',escapeQuot($(this).text())); } }); $(this).popover('show'); }); function escapeQuot(text) { return text .replace(/"/g, "&quot;") .replace(/'/g, "&#039;"); } function unescapeQuot(text) { return text .replace('&quot;', '"') .replace('&#039;', "'"); } $('tbody').on('click', '#save-field', function(){ var order_product_id = $(this).data('id'); var field = $(this).data('field'); var value = $('#field'+order_product_id).val(); var data = { order_product_id : order_product_id, field : field, value : unescapeQuot(value), }; $.ajax({ url: 'index.php?route=sale/order/editfield&token=<?php echo $token; ?>', data: data, dataType: 'json', success: function(json) { if (json['error']){ alert(json['error']); } else { $('#'+field+'-'+order_product_id).text(json['value']); } }, error: function(jqXHR, textStatus, errorThrown) { alert(textStatus, errorThrown); } }); $('.popover').remove(); }); </script> и само поле: <span id="order_product_note-<?php echo $product['order_product_id']; ?>" class="editable-field"><?php echo $product['order_product_note']; ?></span>
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.