Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (12)

Лучшие ответы пользователя

Все ответы (9)
  • Как заменить контент при нажатии на кнопку?

    @Paul14
    Реализация табов. Сначала определяем индекс (порядковый номер) кнопки среди всех кнопок.
    Затем производим операции для всех кнопок (удалим класс) , а далее проведем операции с той кнопкой, на какую нажали ( метод eq(index) ). С отображаемым контентом тоже самое. Я сделал через show/hide, можно через удаление/ добавление класса.

    $('#buttons-grid a').click(function () {  
       var index = $('#buttons-grid a').index($(this));
       $('#buttons-grid a').removeClass('active').eq(index).addClass('active');
       $('#contactAndMapBlock__wrapper .contactAndMapBlock__right').hide().eq(index).show();
    });
    Ответ написан
    Комментировать
  • Нужно сгенерировать массив объектов и дать каждому уникальный id, как?

    @Paul14
    Конструктор не знает о номере экземпляра объекта, так как уникальные идентификаторы обычно генерируются и присваиваются во время создания объекта. Однако вы можете использовать класс для создания объектов с уникальными идентификаторами. Вот пример кода, который генерирует массив объектов, каждый из которых содержит уникальный идентификатор:

    class MyObject {
      constructor(id, otherProperty) {
        this.id = id;
        this.otherProperty = otherProperty;
      }
    }
    
    function generateObjectsArray() {
      const objectsArray = [];
    
      for (let i = 1; i <= 25; i++) {
        const objectId = i; // Уникальный идентификатор объекта
        const otherProperty = "Другое свойство " + i; // Другое свойство объекта
    
        const newObj = new MyObject(objectId, otherProperty);
        objectsArray.push(newObj);
      }
    
      return objectsArray;
    }
    
    const myArray = generateObjectsArray();
    console.log(myArray);


    Здесь класс MyObject определяет объекты с двумя свойствами: id и otherProperty. В функции generateObjectsArray() мы создаем массив из 25 объектов, где каждый объект имеет уникальный идентификатор от 1 до 25. Вы можете заменить otherProperty на любое другое свойство или добавить сколько угодно свойств по своему усмотрению.

    Переменная myArray будет содержать сгенерированный массив объектов с уникальными идентификаторами.

    ---------------------------

    Если же вам все таки нужен пример функции для решения этой нетривиальной задачи, то:

    const objectsArray = Array.from({ length: 25 })
      .map((_, index) => index + 1)
      .map(id => {
        const sum = [...Array(Math.floor(Math.random() * 10) + 1)].reduce((acc, _) => acc + Math.floor(Math.random() * 100) + 1, id);
        let emoji = '';
        if (sum % 2 === 0) {
          const emojis = ['', '', '', '', ''];
          emoji = emojis[Math.floor(Math.random() * emojis.length)];
        } else {
          const emojis = ['', '', '', '', ''];
          emoji = emojis[Math.floor(Math.random() * emojis.length)];
        }
        
        return { id, sum, emoji };
      });
    
    console.log(objectsArray);

    1. Сначала мы снова используем метод Array.from() для создания массива из 25 элементов, но без передачи функции обратного вызова.
    2. Затем мы используем метод map() для преобразования индекса элемента в уникальный идентификатор id.
    3. Далее мы снова используем метод map(), чтобы каждый объект массива получил дополнительные свойства sum и emoji.
    4. Чтобы вычислить значение sum, мы создаем новый массив с случайной длиной от 1 до 10 элементов с помощью Array(Math.floor(Math.random() * 10) + 1), затем с помощью метода reduce() суммируем случайные числа от 1 до 100.
    5. Затем выбирается случайное эмодзи из массива эмодзи в зависимости от четности значения sum.
    6. Наконец, мы возвращаем объект с id, sum и emoji в каждой итерации.
    7. Полученный массив объектов objectsArray будет содержать 25 объектов, каждый из которых будет иметь уникальный идентификатор id, случайно сгенерированную сумму sum, а также случайно выбранное эмодзи emoji.


    PS: если emoji не нужно, то можно удалить часть кода.
    Ответ написан
    1 комментарий
  • Как отправить несколько данных и несколько фото одновременно?

    @Paul14
    Вот пример кода функции jQuery AJAX для отправки множества фотографий через FormData в обработчик PHP:

    function uploadPhotos() {
        var formData = new FormData();
        var photos = $('#fileInput')[0].files; // получение массива выбранных файлов
        for (var i = 0; i < photos.length; i++) {
            formData.append('photos[]', photos[i]); // добавление фотографий в FormData
        }
    
        $.ajax({
            url: 'upload.php',
            type: 'POST',
            data: formData,
            processData: false,
            contentType: false,
            success: function(response) {
                console.log(response);
                // Действия после успешной загрузки
            },
            error: function(xhr, status, error) {
                console.log(xhr.responseText);
                // Действия в случае ошибки
            }
        });
    }


    В приведенном коде предполагается, что у вас есть для выбора нескольких фотографий.

    А вот пример кода PHP функции, принимающей массив фотографий и сохраняющей их на сервере:

    <?php
    if(isset($_FILES['photos'])) {
        $photos = $_FILES['photos'];
        $uploadedFiles = [];
        foreach($photos['tmp_name'] as $key => $tmp_name) {
            $file_name = $photos['name'][$key];
            $file_tmp = $photos['tmp_name'][$key];
            $file_type = $photos['type'][$key];
            $file_size = $photos['size'][$key];
            
            $new_file_name = md5(time() . $file_name) . '.' . pathinfo($file_name, PATHINFO_EXTENSION);
            $destination = 'uploads/' . $new_file_name;
            
            if(move_uploaded_file($file_tmp, $destination)) {
                $uploadedFiles[] = $destination;
            }
        }
        
        if(!empty($uploadedFiles)) {
            // Действия после успешной загрузки
            echo "Фотографии успешно загружены";
        } else {
            // Действия в случае ошибки
            echo "Ошибка загрузки фотографий";
        }
    }
    ?>


    В примере предполагается, что фотографии будут сохраняться в папку "uploads". Каждая фотография будет переименована в формате md5(время + имя файла).формат. Если загрузка прошла успешно, функция выведет "Фотографии успешно загружены", иначе "Ошибка загрузки фотографий".
    Ответ написан
    5 комментариев

Лучшие вопросы пользователя

Все вопросы (16)