2016-09-15 2 views
0

(내 영어는 나의 모국어 죄송합니다)아약스/PHP는 폼 리디렉션을 제출하지만 send.php

간단한 질문 실행 내가 (파일 포함) 폼 데이터를 처리하는 PHP 파일을 실행할 수 있지만, 내 send.php 파일의 응답을 기다리지 않고 사용자를 리디렉션합니까?

완료 대기 시간이 많이 내 PHP 프로세스에서 업로드 파일이 많이 있습니다. 나는 그 사용자가 오래 기다리 길 바라지 않는다 ...

현재 인스턴트 메신저를 사용하여 php를 실행하는 send.php로 리다이렉트하지 못하도록하지만, 사용자는 "success"함수가 호출 될 때까지 기다리고있다. 파일 업로드 및 PHP 완료, 다시는 사용자가 영원히 기다리는 것을 의미합니다 ... 성공 함수가 PHP를 끝내기 전에 리디렉션.

내가 원하는 것은 사용자가 제출을 클릭하고 백그라운드에서 send.php를 시작하고 send.php 파일의 응답을 기다리지 않고 사용자를 다른 페이지로 리디렉션하는 것입니다.

내 PHP는 내가 오류를 확인하고 그 거래 때문에 사용자가 어떤 오류 알 필요가 없습니다. 파일이 업로드 될 때까지

$(document).on('submit', '#myForm', function(e) { 
       e.preventDefault(); 
       $.ajax({    
        url: $('#myForm').prop('action'), 
        type: $(this).attr('method'), 
        data: new FormData($('#myForm')[0]), 
        contentType: false, 
        processData: false, 
        success: function(data) { 
         alert('Form submitted'); 
         window.location = "http://www.somesite.com/"; 
        }, 
        error: function() { 
         // The request failed - So something here 
         alert('Form NOT submitted'); //display an alert whether the form is 
         console.log('form not submited ERROR'); 
        } 
       }); 
      }); 

답변

0

당신은 기다려야합니다 :

내 아약스 (BTW 모든 것이 procces 그냥 행복하지하고있다). 업로드가 끝나면 백그라운드 작업 (스레드)을 시작할 수 있습니다 (예 : 업로드를 조작해야하는 경우). 그러나 PHP에서는 스레드 처리가 불가능합니다. 귀하의 의견에

+0

thnx. 리디렉션 할 방법이 없으므로 응답을 기다리지 않고 PHP를 exec 할 수 있습니까? –

+0

다음과 같이 백그라운드 프로세스를 실행할 수 있습니다. [link] (https://nsaunders.wordpress.com/2007/01/12/running-a-background-process-in-php/) 하지만 파일을 업로드하는 경우 업로드가 끝나기 전에 리디렉션하면 업로드가 중개 될 것입니다. – ghovat

+0

다시 고맙습니다. @ghovat 파일을 서버에 업로드 할 때까지 기다려야합니다. –

관련 문제