2012-04-17 4 views
0

자바 스크립트 함수를 호출하고 페이지를 다시로드 할 때 PHP 파일을 실행하려고하면 페이지가 다시로드되지만 PHP 파일은 실행되지 않습니다.ajax가 PHP 파일을 호출하는 중

function changeR() 
{ 
    $.ajax({ url: 'win.php?id=1' }); 
    window.location.reload() 
} 
+1

무엇 PHP 스크립트가 실행되지 않도록 당신이 말하는 무엇입니까? PHP 스크립트가 실행되는 것을 막는 데 오류가 없다고 확신합니까? –

+0

필자는 성공적으로 php 파일을 별도로 실행하고 mySQL 서버를 적절히 업데이트합니다. 이렇게하면 mySQL 서버가 변경되지 않습니다 –

답변

4

아약스 호출이 완료되면 다시로드합니까? success 이벤트를 사용할 수 있습니다.

function changeR() 
{ 
    $.ajax({ url: 'win.php?id=1' , 
      success: function(data) { 
         window.location.reload() 
        } 
     }); 
} 

는 AJAX 호출이 성공이면 성공 이벤트가 당신이 성공 또는 오류가없이 몇 가지 코드를 실행하지하려면, 당신은 [complete][1] 또는 done

또는 고려할 수, 실행된다는 것을 명심 당신은 보통 사람들이 페이지를 다시로드없이 부분 페이지 업데이트를 할 아약스를 사용 window.location.href=window.location.href 대신

window.location.reload()의 시도 할 수 있습니다. ajax 호출 후 전체 페이지를 다시로드 하시겠습니까?

편집 : 주석으로 당

이 Ajax 호출을 통해 PHP 변수 값을 전달하려는 경우, 당신은 어떤 HTML 요소 (예에 값을 설정이

같이 할 수있는하십시오 여기

//Reading the value of an html element with id `txtId` 
var val=$("#txtID").val(); 
$.ajax({ url: 'win.php' , 
     data: { id: val }, 
     success: function(data) { 
        window.location.reload() 
       } 
}); 

아이디 txtID와 숨겨진 요소) 당신은 id라는 이름의 매개 변수에 요소의 값을 보낼 수 있습니다. 방화범이나 피들러를 사용하여 어떤 가치가 있는지 확인할 수 있습니다.

추가 옵션 현재 위치 : http://api.jquery.com/jQuery.ajax/

+0

작동하지 않습니다. 이전에 .ajax를로드해야 할 것이 있습니까? –

+0

다른 스크립트 오류가 있습니까? 귀하의 페이지에 있습니까? firebug 콘솔을 사용하여 오류가 무엇인지 확인하십시오. – Shyju

+0

@AaronBoswell : 스크립트 오류 (추가 닫기 괄호)가 있습니다. 그것을 수정했습니다.지금 시도하십시오 – Shyju

1

아약스 호출을 의미 비동기 당신이 AJAX 요청이 완료되기 전에 window.location.reload()을 수행합니다. 대신, AJAX 요청이 완료 될 때까지 기다리십시오. 다음에을 다시로드하십시오. 우선

function changeR() 
{ 
    $.ajax({ 
    url: 'win.php?id=1' 
    }).done(function() { 
    window.location.reload() 
    }); 
} 
0

이 성공적으로 실행되는 것을 방지 할 수 귀하의 win.php 스크립트에 오류가 없는지 확인합니다.

둘째, ajax 호출이 완료된 후에 만 ​​다시로드를 수행하십시오. 이를 수행하는 더 쉬운 방법은 asyc 설정을 false으로 설정하는 것입니다. 이렇게하면 호출이 동 기적으로 완료됩니다. 즉, 계속하기 전에 실행이 완료 될 때까지 대기합니다.

function changeR() 
{ 
    $.ajax({ url: 'win.php?id=1', async: false }); 
    window.location.reload() 
} 
0

은 '체인저'기능으로 이것을 시도 :

$.ajax({ 
type: "GET", 
url: "win.php", 
data: "id=1", 
success: function(msg){ 
    window.location.reload(); 
} 
}); 
+0

1.8에서'success'가 사용되지 않습니다. 대신'done'을 사용해야합니다. – kba

관련 문제