2014-11-18 2 views
0

의 전체 페이지를 반환 나는 내 워드 프레스 사이트에서 실행되는 자바 스크립트의 다음과 같은 부분이 있습니다워드 프레스 아약스 호출은 HTML

var PostData = "Action=refresh-cart"; 
        jQuery.ajax({ 
         dataType: "text", 
         type: 'POST', 
         url : location.href, 
         cache: false, 
         data : PostData, 
         complete : function() { }, 
         success: function(data) { 
         // jQuery("#loading-img").hide(); 

          // jQuery("#join-class-div-3").html(data); 

         }   
       }); 

PHP는이 :

<?php 

    if(isset($_POST['Action'])) { 
     $Action = $_POST['Action']; 
     if($Action == "refresh-cart") { 


      echo '<div id="stuff"><p> done LOL </p></div>'; 
      } 
     } 

    ?> 

그래서 내가 될 것으로 기대를 답장 :

<div id="stuff"><p> done LOL </p></div> 

대신 HTML 전체 페이지가 표시됩니다. 왜!?

+0

그래서 말 그대로 모두에 도착하여 PHP 페이지가 위에 무엇입니까? 다른 html은 어떻게 되나요? – Rasclatt

+0

코드를 로컬에서 실행할 때 코드가 예상대로 작동하는 것 같습니다. HTML 페이지를 초기화하는 질문에 포함 된 코드 이외의 코드가 있습니까? – Pablo

답변

1

그것은 당신의 URL "같이 location.href의"에코 후 exit()에 PHP 코드를 추가

시도가 그것을 막을에서 렌더링 된 페이지에서 모든 내용을 반환합니다.

<?php 
if(isset($_POST['Action'])) { 
    $Action = $_POST['Action']; 
    if($Action == "refresh-cart") { 
     echo '<div id="stuff"><p> done LOL </p></div>'; 
     exit; 
    } 
} 
?> 
<div>html content here will not be displayed</div> 
+0

PHP는 실제로 톤이 더 많습니다 만, 액션 변수의 if 서술문을 감싸고 있습니다. – RenegadeAndy

+0

@RenegadeAndy 네, 그래야만 테스트 할 수 있습니다 .. – Steve

+0

그래, 문제는 location.href가 : http://127.0.0.1:8080/wordpress/?page_id=7입니다. 요청이 흘러 나오고 있다고 생각합니다. 많은 PHP 파일을 통해. 내 특정 WordPress 플러그인 PHP 파일의 URL을 어떻게 알 수 있습니까? – RenegadeAndy

0

location.href가 높은 수준의 URL이기 때문에 문제가 발생하여 wordpress가 ajax 요청에 html로드를 주입하고있었습니다. 워드 프레스 PHP API의 일부입니다 plugins.url()에 대한 호출에 location.url을 변경을 통해

는 - AJAX 호출 내 PHP 페이지로 직접 이동 나는 올바른 응답 :

+0

결국에는 - 그렇지 않으면 나는 워드 프레스 API에 액세스 할 수 없기 때문에 ajax에이 방법을 사용했다. http://codex.wordpress.org/AJAX_in_Plugins – RenegadeAndy