@michellie

Как отправить форму с multiple файлами через ajax?

Когда пробую переделать на ajax, файлы теряются, как их в таком же формате отправить по ajax?

<form method="POST" enctype="multipart/form-data" name="promo_form" action="includes/promoaddphoto.php">

        <label for="pname">Имя</label>
        <p class="pname"><input type="text" name="pname" id="pname" value="<?php 
        if(isset($_SESSION['username'])){
          echo $_SESSION['username'];
        }
        else echo "Гость";
        ?>" autocomplete="off" /><span></span></p>

        <label for="ppage">Возаст</label>
        <p class="ppage"><input name="ppage" type="ppage" id="ppage" placeholder="Вводи свой емейл" autocomplete="off" /><span></span></p>



         <label for="pcity">Город</label>
        <p class="pcity"><input name="pcity" type="pcity" id="pcity" placeholder="Вводи свой емейл" autocomplete="off" /><span></span></p>

         <label for="pphone">Телефон</label>
        <p class="pphone"><input name="pphone" type="number" id="pphone" placeholder="Вводи свой емейл" autocomplete="off" /><span></span></p>

         <label for="pprice">Прайс</label>
        <p class="pprice"><input name="pprice" type="number" id="pprice" placeholder="Вводи свой емейл" autocomplete="off" /><span></span></p>
        
         

        <label for="pphoto">Фото</label>
        <p class="pphoto"><input type="file" multiple accept="image/jpeg" name="file[]" id="pphoto"/><span></span>
        <input type="hidden" name="MAX_FILE_SIZE" value="30000" /></p>

        <label for="pgender">Пол</label>
        <select name="pgender" id="pgender" class="addgender">
    <option value="">выбрать</option>
    <option value="m">муж</option>
    <option value="f">жен</option>
</select>

        <p class="submit"><input id="praddsum" type="submit" value="Добавить" /></p>
      </form>
  • Вопрос задан
  • 400 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
https://developer.mozilla.org/ru/docs/Web/API/FormData

...
for (let i = 0; i < pphoto.files.length; i++)
  formData.append('images', pphoto.files[i]); 
...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Tomarev
по твоему примеру images перезаписывается и в итоге передается последняя фотка.

Вот так можно передать все фото

for (let i = 0; i < pphoto.files.length; i++)
  formData.append('images'+i, pphoto.files[i]);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы