2013-08-08 2 views
0
for(var i=0; i<participantNum; i++){ 
    studentID = $('#txtID'+(i+1)).val(); 
    alert(studentID); 
    //my php function call it's work normally request(php,paramiter,cb) 
    request("http://localhost/lastOrientation/2_registerValidate.php","studentID="+studentID,validateID); 
} 

내가 학생증루프 PHP는

의 유효성을 검사하는 루프 CALL의 PHP 스크립트에 의해 각 텍스트 상자에서 값을 얻을 결과의 올바른 순서를 얻을 수 있지만, 결과는 무작위로는 순서에 따라 배열 아니에요 나와 모든 결과가 나오는 방식으로 for 루프에서 증가하는 코드

. 나는 그것이 아약스 요청이지만 당신이 조언을 할 수 있기 때문에 알고있다.

나를 위해 루프에 대한 결과 순서를 얻는 방법. 나의 언어에 대한 사전

미안의

감사합니다.

+0

같은 요청을 대기하는 것입니다? –

+2

'request'가 ajax를 사용하는 것처럼 보입니다 ... 그렇다면 비동기입니다 .. 그게 동작의 이유입니다 –

+1

Ajax 전체 코드를 입력하십시오 –

답변

2

가 요청을 처리하는데 아약스 요청을하고 문제를 귀하의 아약스 코드

async : false, 

를 해결할 수 있음 콜백이 언제 실행되는지 또는 어떤 요청이 곧 완료 될지 예측할 수 없습니다. 네트워크 속도와 요청을 처리 할 때의 서버 속도에 따라 다릅니다. 될 것입니다

가능한 해결책은 당신이 받고있는 출력 및 예상 출력을 게시 할 수

function x(i, limit){ 
    if(i >= limit){ 
     return; 
    } 
    studentID = $('#txtID'+(i+1)).val(); 
    alert(studentID); 
    //my php function call it's work normally request(php,paramiter,cb) 
    request("http://localhost/lastOrientation/2_registerValidate.php","studentID="+studentID,validateID).complete(function(){ 
     x(i + 1, participantNum) 
    }); 
} 

x(0, participantNum); 

function request(){ 
    return $.ajax(...) 
} 
+0

예 !! 내 코드에 맞게 약간 변경 한 아이디어를 안내해 주셔서 감사합니다.하지만 이것이 내가 원하는 방식입니다. @Arun P Johny –

0

아마도 서버 요청 간의 대기 시간 때문일 수 있습니다. 첫 번째 요청이 시작될 때 두 번째, 세 번째 또는 다른 요청이 돌아온 후에 만 ​​두 번째 요청보다 오래 걸리고 결과를 반환 할 수 있습니다. 당신이 정말로 주문을 유지하기를 원한다면 어떤 요청이 어떤 결과인지를 기록해야한다. 그렇지 않으면 결과를 돌려 줄 때가 아니면 (나는 후자의 옵션을 추천하지 않는다) 요청을 동기해야한다.

0

예 아약스 요청이 자연 수단에 비동기 경우는,

그것은 request 방법처럼 보인다
+1

그러나 이것이 무엇을 의미하는지 잊지 마십시오 : * 도메인 간 요청과 데이터 타입 : "jsonp"요청은 동기 작업을 지원하지 않습니다. 동기 요청은 일시적으로 브라우저를 잠그고 요청이 활성화되어있는 동안 작업을 비활성화 할 수 있습니다. * [jQuery.ajax] (http://api.jquery.com/jQuery.ajax/) – gmo

관련 문제