Как обрабатывать несколько форм с Ajax - Php - PullRequest
0 голосов
/ 08 января 2020

На странице HTML у меня есть две формы. Form1 содержит несколько входов. Form2 используется для загрузки файлов на сервер, поэтому нажатие кнопки «Загрузить» вызывает от php до Ajax, которые обрабатывают и загружают файлы на сервер. У меня проблема в том, что я не могу найти способ реализовать то, что при нажатии кнопки «Загрузить» файлы загружаются на сервер так же, как сейчас, но также обрабатывают данные в форме 1 и сохраняют их в база данных.

<form method="POST" id="frm_one>
   <input type="text" class="form-control" placeholder="Sol." aria-label="sc" aria-describedby="basic-addon1">
   <input type="text" class="form-control" placeholder="ID DOC" aria-label="Username" aria-describedby="basic-addon1">
</form>

<form method="POST" id="frm_two>
   <input type="text" class="form-control" placeholder="Piece" aria-label="sc" aria-describedby="basic-addon1">
   <input type="text" class="form-control" placeholder="Order" aria-label="Username" aria-describedby="basic-addon1">
</form>

<form action="procesar.php" method="POST" enctype="multipart/form-data" id="frm_subedoc">
   <input class="form-control p-1 border" type="file" name="file[]" id="selarchivos" multiple>
   <button type="button" class="btn btn-info form-control mt-3" id="btn_subir">Subir Archivos</button>
</form>

Доставка через Ajax следующим образом:

            $("#btn_subir").click(function(){
               var Form=new FormData($("#frm_subedoc")[0]);
               $.ajax({
                   url:"procesar.php",
                   type:"post",
                   data:Form,
                   processData:false,
                   contentType:false,
                   success: function(data){
                       $("#selarchivos").val('');
                   }
               });
           });           

PHP, который получает запрос:

<?php
   session_start();
   $carpeta="documentos/";
   $files_post=$_FILES['file']; 
   .
   .
   .
?>

Вопрос что если я использую одну форму, то что произойдет с параметром ' enctype = "multipart / form-data" ', который я объявил в form2?, влияет на данные, передаваемые во входных данных? Кроме того, если вы измените способ восстановления данных в PHP, то есть $ _ POST ['field'] ?

1 Ответ

0 голосов
/ 08 января 2020

По правде говоря, я больше не использую много плагинов, но это тот, который я продолжал использовать. Зачем изобретать велосипед?

Плагин загрузки файлов jQuery Рави Кусумы

В вашем случае, на вкладке API & OPTIONS на его странице документов обратите внимание, что вы можете отправьте дополнительные данные вместе с файлом:

dynamicFormData: function()
{
    //var data ="XYZ=1&ABCD=2";
    var data ={"XYZ":1,"ABCD":2};
    return data;        
}

Итак, в функции, содержащей вашу подпрограмму AJAX, вы можете сначала собрать имена / значения полей из другой формы и поместить их в javascript объект. Затем вы можете использовать приведенный выше код для отправки этого объекта на серверный скрипт PHP, который получает файл.

Также обратите внимание на вкладку Server Side, которая документирует, какой у вас сервер * Файл 1034 * должен выглядеть следующим образом.

Список литературы:

PHP загрузка файла в модальном окне

Почему изображение не отображается не копируется в папку?

http://hayageek.com/docs/jquery-upload-file.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...