Отправить форму, когда файл загружен с помощью ajax - PullRequest
0 голосов
/ 07 мая 2019

Я хочу отправить форму для загрузки файла. У меня проблема в том, что мне нужно использовать AJAX для отправки временного пути в php, а затем получить массив в качестве ответа.

По сути, я хочу отправить форму, получить временный путь, отправить ее в PHP с использованием JS, а затем из PHP вернуть массив в ответ на JS

это то, что я имею до сих пор:

<form name="form1" id="frmXML" method="post" action="">
<div>
    <label for='upload'>Agregar XML:</label>
    <input id='upload' name="upload[]" type="file" accept=".xml" multiple="multiple" onchange="doSelect(this)"/>
</div>

JS:

function doSelect(el){

    $.ajax({
        type : 'POST',
        data: {
                path:this.document.getElementById('upload').value,
                submit: 'submit',
              }
        url : 'Logica/Usuario.php',
        dataType:'json',
        success : function(response){

            var len =response.length;

            if(len>0)
            {
                //Do something              
            }
        }
    });
    return false;

  }

Ответы [ 2 ]

1 голос
/ 07 мая 2019

Вы не можете.

Если оставить в стороне всю логистику смешивания Ajax и non-Ajax, вот что произойдет:

  1. Форма отправит файл в PHP
  2. PHP запускается, назначает файлу временный путь, генерирует ответ, удаляет файл из временного пути и завершает работу
  3. JavaScript получит путь к файлу, которого больше не существует
  4. JavaScript будет делать Ajax-запрос к другому PHP и отправлять ему путь к файлу
  5. Другой PHP будет смотреть на этот путь к файлу и не найдет файл, потому что он уже был удален

Если вы хотите создать Ajax и связать с ним файл, то простейшим подходом было бы просто сделать одиночный запрос HTTP, используя Ajax, и включитьфайл в нем.

0 голосов
/ 07 мая 2019

Если я правильно понимаю, вы хотите отправить форму после выполнения запроса ajax, поэтому это должно работать:

if(len>0)
    {
        $('form').submit()              
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...