2013-08-11 3 views
0

내가하고있는 일은 데이터베이스의 사용자 상태를 확인하는 것입니다.AJAX 호출이 완료된 후 PHP로 JavaScript 함수를 전달하십시오.

PHP 페이지는 ajax 호출의 상태를 표시하고 상태에 따라 함수가 실행 중입니다.

잘 작동합니다. 나는 json을 사용할 수 있다는 것을 알고 있지만, 지금은 괜찮습니다. 내가 원하는 것은 사용자 상태를 반향하는 것이 아니라 실행해야하는 함수를 반향하여 아약스가 완료된 후에 실행하는 것입니다.

내 jQuery를/아약스 코드 : 나는 싶지만 작동하지 않습니다 무엇

function checkstatus() { 
    $.ajax({ 
    type: "GET", 
    url: "./query/checkstatus.php", 
    data: {} 
    }).done(function(result) { 
     if (result == "nieuw") { 
     loadHomeNieuw(); 
     }; 
     if (result == "actief") { 
     loadHome(); 
     }; 
    }); 
} 

. jQuery를/아약스 코드 :

function checkstatus() { 
    $.ajax({ 
     type: "GET", 
     url: "./query/checkstatus.php", 
     data: {} 
    }).done(function(result) { 
    }); 
} 

PHP 코드 (작동하지 않는) :

if ($status == "nieuw") { 
    echo "loadHomeNieuw();"; 
} 

if ($status == "actief") { 
    echo "loadHome();"; 
} 

이도 가능합니까? 내가 묻는 이유는, 그것이 더 안전하다고 느낀다는 것입니다. 사용자로서 상태를 해킹하는 것이 가능할 수 있습니다 ... 그래서 그는 그것을 바꿀 수 있고 잘못된 기능이 호출되고 있습니다. 서버 측에서이 작업을 수행하면 더욱 안전합니다.

더 나은 옵션이 있습니까?

+0

정확하지는 않습니다. 정확히 동일합니다. 클라이언트 측에서 Ajax 호출의 응답을 얻는 것은 쉬운 일이 아닙니다. – adeneo

+0

왜 "loadHomeNieuw();"를 그냥'if() {loadHomeNieuw()}'와 같이 호출할까요 –

+0

더 안전하지 않다면 ... 내 질문을 잊어 버려요. 그러나 그것은 더 안전하다고 느낀다 ... 그리고 나는 그것을 좋아하지 않는다. 왜냐하면 나의 PHP 페이지와 자바 스크립트는 2 개의 다른 페이지에 있기 때문이다. 그래서 그것은 올바르게 작동하지 않을 것입니까? – Nick

답변

0

당신은 평가 호출 할 수 있습니다

function checkstatus() { 
    $.ajax({ 
     type: "GET", 
     url: "./query/checkstatus.php", 
     data: {} 
    }).done(function(result) { 
     eval(result); 
    }); 
} 

하지만, 어떤 사람들은 그냥 이름을 반환하고 그 이름이 그 기능을 수행 할 수 있도록 그 악마의 말 :

function checkstatus() { 
    $.ajax({ 
     type: "GET", 
     url: "./query/checkstatus.php", 
     data: {} 
    }).done(function(result) { 
     window[result](); 
    }); 
} 

및 PHP에서

그냥 이름을 에코

if ($status == "nieuw") { 
    echo "loadHomeNieuw"; 
} else if ($status == "actief") { 
    echo "loadHome"; 
} 
+0

아, 두 옵션이 모두 작동합니다. 첫 번째로 나는 loadHome()을 echo해야한다; 두 번째 옵션을 사용하면 loadHome을 echo하면됩니다. 하지만 지금하는 것보다 더 좋고/더 안전한 옵션이 있습니까? 또는 두 가지 모두에 대해 다른 이름을 반환 한 다음 다른 함수를 호출 할 수 있습니까? – Nick

0

당신이 찾고있는 것을 GetScript라고합니다 : http://api.jquery.com/jQuery.getScript/

이 코드는 리턴 된 코드를 실행합니다. 코드 :

$.getScript("./query/checkstatus.php"); 
+0

좋아, 이제 3 가지 옵션이 있습니다 : D 니스, 어느 것이 가장 좋습니다? getScript, eval 또는 window? 그리고 왜? getScript가 가장 안전한 이미지를 만들 수 있습니까? – Nick

+0

최소한이 목적을 위해 만들어졌습니다. –

관련 문제