@mRForumman

Как подгрузить картинки?

Всем привет. Пишу небольшой велосипед (на чистом php ) для самообразования (интернет магазин). Для загрузки изображений взял плагин krajee file-input .

У меня есть продукт или товар (как угодно) в интернет-магазине. С загрузкой я разобрался. Картинки загружаются на ура, а вот с редактированием и удалением изображений товара у меня возникли проблемы.

Я взял стандартный шаблон для загрузки изображений(когда скачиваете папку с плагином он идёт в examples).

Этот jquery плагин сам формирует нужную ему структуру блоков. Превьюшки изображений должны находиться в этом блоке file-preview-thumbnails. Не понимаю как мне в разделе редактирования товара поместить уже загруженные картинки в file-preview-thumbnails.

Это вообще возможно? Вытянуть из б/д и засунуть сюда. В принципе у плагина есть такая штука как initialPreview, но как же мне вытянуть нужные картинки из б/д и передать их сразу в объект плагина?
В плагине это выглядит так

Я еще читал (но не пробовал) что можно данные которые я вытянул из БД преобразовать в json, затем как-то передать в js.

Удаление. Возможно ли кнопку удаления на превьюшке переназначить так чтобы ajax запросом можно было удалить запись из б/д и с изображение папки загрузок?

Да. Конечно. Я могу в разделе редактирования товара вывести изображения товара отдельно (обычным запросом из б/д) и там же реализовать удаление, но хочется не нагромождать, а хочется реализовать внутри загрузчика плагина.

В общем не знаю что делать. Подскажите как поступать. Как бы сделали вы. Плагин мне нравиться.
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
boyarskiy_mihail
@boyarskiy_mihail
Ну вытаскиваешь из БД нужные картинки, затем формируешь из них json и используешь в initialPreview
Что-то вроде такого:
<?php
   // Твои картинки из БД
    $images = [
      [
        'src'     => 'http://lorempixel.com/1920/1080/nature/1',
        'caption' => 'Image #1',
        'id'      => 12 // Айди картинки в БД
      ],
      [
        'src'     => 'http://lorempixel.com/1920/1080/nature/2',
        'caption' => 'Image #2',
        'id'      => 15
      ]
    ];
  ?>
<script type="text/javascript">
  const myImages = <?=json_encode($images)?>;
  let myInitialPreview = [];
  let myInitialPreviewConfig = [];
  for( let i in myImages ) {
    myInitialPreview.push(myImages[i].src);
    myInitialPreviewConfig.push({
      caption: myImages[i].caption,
      key: i,
      extra: { id: myImages[i].id }
    });
  }
  $("#file_input").fileinput({
      deleteUrl: 'delete.php', // Тут твой обработчик при удалении файла
      overwriteInitial: false,
      initialPreviewAsData: true,
      initialPreview: myInitialPreview,
      initialPreviewConfig: myInitialPreviewConfig
  });
</script>
// delete.php
<?php
if( $image_id = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT) ) {
  // Удаляешь картинку из БД, $image_id = id удаляемой картинки
}
echo json_encode(['success' => 1]);
?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Ведисофт Екатеринбург
от 25 000 ₽
YCLIENTS Москва
от 200 000 до 350 000 ₽
от 300 000 до 500 000 ₽
05 мая 2024, в 23:43
8000 руб./за проект
05 мая 2024, в 23:39
3000 руб./за проект
05 мая 2024, в 23:36
3000 руб./за проект