내가하지 않으면이 페이지 + 레이아웃을 표시하는 것, JQuery와jQuery로드로 스크립트를 호출했는지 여부를 감지하는 방법 (PHP에서)이 있습니까?
그렇지 않으면 호출하는 경우 감지 할 수있는 스크립트를 싶습니다 그냥 그렇게 컨텐츠를 좋겠 (하지만 무관)
하지만 예, jquery load - ajax로 호출되었는지 감지하는 방법 - 또는 직접 요청했습니다.
건배!
내가하지 않으면이 페이지 + 레이아웃을 표시하는 것, JQuery와jQuery로드로 스크립트를 호출했는지 여부를 감지하는 방법 (PHP에서)이 있습니까?
그렇지 않으면 호출하는 경우 감지 할 수있는 스크립트를 싶습니다 그냥 그렇게 컨텐츠를 좋겠 (하지만 무관)
하지만 예, jquery load - ajax로 호출되었는지 감지하는 방법 - 또는 직접 요청했습니다.
건배!
로드가있는 GET 매개 변수를 보낼 수 없습니까?
즉 :
정상 스크립트로드
에 대한jquery=1 //(for load)
jquery=2 //(for the 'low-level' ajax call)
다른 값은 다음 당신은 다음에 무엇을 결정하는 PHP 스크립트 거래를 할 수 있습니다. $_GET['jquery']
값을 올바르게 읽으면 jQuery의 AJAX 함수는 XMLHttpRequest
값을 사용하여 X-Requested-With
헤더를 보냅니다.
서버에서 수신중인 HTTP 헤더를 살펴볼 수 있습니다. 예를 들어
,이 전 페이지가 생각해 봅시다 :
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
</head>
<body>
<div id="test"></div>
<script type="text/javascript">
$('#test').load('temp.php');
</script>
</body>
</html>
그리고 temp.php 스크립트가있는 경우에만이 :
<?php
var_dump($_SERVER);
die;
load
는, "테스트"
<div>
을 실행
$_SERVER
의 덤프를 포함합니다. 그것은 다른 것들 사이에,이 포함됩니다 :
'HTTP_X_REQUESTED_WITH' => string 'XMLHttpRequest' (length=14)
XMLHttpRequest
는 Ajax 요청을하는 데 사용되는 개체입니다. 이와
if (isset($_SERVER['HTTP_X_REQUESTED_WITH'])
&& $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
echo "Ajax";
} else {
echo "Not Ajax";
}
, 당신이 당신의 페이지가 "보통"이라고 여부를 감지 할 수 있습니다
이 요청이 이런 일에, 아약스 쿼리를 통해 만들어진 경우를 감지 할 수 있어야 의미 , 또는 Ajax 요청을 통해, 레이아웃을 포함해야하는지 아닌지를 결정해야한다.
BTW : 예를 들어 젠드 프레임 워크에서 사용하는 솔루션 인 정확히 detect Ajax requests입니다. 당신이 젠드 프레임 워크를 사용하는 경우
첫 줄은 다음과 같이 단순화 할 수 있습니다. @ $ _ SERVER [ 'HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { –
@ Sbm007 : @ 연산자로 오류를 숨기고 싶지 않을 때만 사용하십시오. trully 필요 - 여기에 $ _SERVER에 해당 항목이 있는지, 그 값이 원하는지, 그리고 이것이 정확히 isset이고 두 번째 조건이 무엇인지 테스트하고 싶습니다. –
오, 그럼 충분히 알았어. 나는 그들이 똑같은 줄 알았다. 감사. –
당신은 내가 말한다 스크립트가 그렇다면
// in one of your controllers
if ($this->getRequest()->isXmlHttpRequest()) {
// ...
}
http://framework.zend.com/manual/en/zend.controller.request.html
을 사용할 수 있습니다. $ ("#의 actualcontent")를로드 ($ (이). attr ("href")); 추가 변수/GET 매개 변수를 어떻게 추가합니까? – Tom
$ ("# actualcontent"). load ($ (this) .attr ("href") + '?jquery = 1 '); –
우수! 완벽 해. – Tom