2014-03-31 2 views
0

해당 페이지의 링크를 클릭하면 인덱스 페이지로 데이터를 보내려고합니다. 의 index.php 페이지는 다음과 같습니다

나는 새로운 링크를 그런 식으로 페이지를 다시로드 할
<script> 
    jQuery('.show_content').click(function(e) 
    { 
     e.preventDefault(); 

     var href = jQuery(this).attr('href'); 
     jQuery.post(window.location, { link: href }); 
    }); 
</script> 

이는로드 :

include "../app/bootstrap.php"; 
include ("../src/controllers/DisplayContentsController.php"); 

$data = new DisplayContentsController(); 
$link = (isset($_POST['link']) ? $_POST['link'] : null); 

if ($link != null) 
{ 
    $data->show($twig, $starting_file_path . '/' . $link); 
    $starting_file_path = $starting_file_path . '/' . $link; 
} 
else 
{ 
    $data->show($twig, $starting_file_path); 
} 

및로드 된 나뭇 가지 템플릿에 나는이가 올바른 디렉토리. 그러나 내가 jQuery.post()을 표시하면 표시된 내용이 변경되지 않습니다. 누군가가 내 잘못을 알아 내고이를 어떻게 수행 할 수 있습니까?

+0

무언가를 추가하기 만하면 콘텐츠 요청은 GET에 의해 관리되어야하며 변경 사항은 POST에 의해 두 번 관리해서는 안됩니다. – JorgeeFG

답변

1

POST 요청의 출력이 성공 핸들러 함수에서 리턴됩니다. 예를 들어, 당신은 같은 것을 할 필요가있을 것이다 :

jQuery('.show_content').click(function(e) 
{ 
    e.preventDefault(); 

    var href = jQuery(this).attr('href'); 
    jQuery.post(window.location, { link: href } , function(data){ 
     //data will have the new HTML after the page posted back. You can use that 
     //HTML to load if onto an element on the page. Something like: 
     $('#content_result').html(data);   
    }); 
}); 

당신은 당신이 그것으로 HTML을로드하는 데 사용할 수 드리려고 같은 "ID = content_result"- 또는 뭔가가있는 div이 가정. 이미 다음 #content_result 내부에 표시되는 기존의 HTML에 결과를 추가하려면

간단하게 할 : 당신이 맹목적으로 유지하는 경우 - - 전체 페이지를

$('#content_result').html($('#content_result').html()+data); 

자,이 모든 것을 반환 할 것을 명심 덧붙여 말하면 유효한 HTML을 따르지 않는 페이지로 끝날 것입니다. 예를 들어 1 개 이상의 페이지가있는 <head>, <body> 섹션 등이 있습니다. 가장 좋은 방법은 정말로 관심이있는 섹션을 추출하는 것입니다 , 그 섹션 만 추가하면 항상 유효한 HTML 문서로 끝납니다.

jQuery는 이러한 종류의 작업을 수행 할 수있는 다양한 옵션을 제공합니다.

+0

이 효과가 있습니다. 이전 데이터가 그대로 유지되도록 페이지의 결과를 추가 할 수있는 방법이 있습니까? 이전 디렉토리 내용은 그대로 유지되고 새로운 데이터가 페이지에 추가됩니다. – zachstarnes

+0

$ ('# content_result')와 같은 것을 의미합니다. append (data)? http://api.jquery.com/append/ – Schleis

+0

@zachstarnes, 완전히 원하는 결과를 추가 할 수 있습니다. 내 업데이트를 참조하십시오. – Icarus