2009-11-14 5 views
1

iframe과 같은 iframe을 사용하고 싶습니다. 여기에 있습니다. 내가 내용을 변경하기 위해 그 안에 다른 링크를 만들 경우, 슬프게도하지만이 꽤 잘 작동div와 javascript 및 php가 포함 된 내용이 변경됩니다.

<a href="#self" onClick="document.getElementById('maincontent').innerHTML = '<?php include 'file.php'; ?>';">Open file</a> 

: 만들기 링크가 지금과 같은 사업부의 내용을 변경하면

기본적으로, 내가 지금까지 들어 왔 첫 번째 파일로 돌아 가면 서버가 무한 루프에 멈추어 충돌합니다.

정말 동적으로 내용을 변경하고 PHP를 사용하여 파일에서 해당 내용을 가져 오는 방법을 찾으려고합니다. 이것에 접근하는 나의 방식이 완전히 우스꽝스러운 것이라면, 나는 제안을 고맙게 생각한다.

답변

10

내가 제일 쉬운 방법은 jQuery를 사용하는 것입니다 생각 :

<script type="text/javascript"> 
$('#addContent').click(function(){ 
    $("#maincontent").load("file.php"); 
    return false; 
}); 
</script> 

<a href="#" id="addContent">Open File</a> 
<div id="maincontent"></div> 

이 스크립트는 아약스 호출을 사용하여 선택한 DIV에 file.php의 내용을로드합니다.

1

이것은 jQuery's load() 기능에 적합한 장소입니다. div에 id를 지정하고 링크에 클릭 이벤트를 추가하고 이벤트가 PHP 스크립트의 내용을 div에로드하도록합니다. 새 데이터를로드 할 때 클래스에 클래스 (예 : '업데이트 됨')를 추가 할 수 있습니다. 이렇게하면 클릭 이벤트에서 div가 확인 ('. 업로드 됨)되고 링크를 다시 클릭하면 다시 전환 할 수 있습니다.

1

원하는 콘텐츠가 포함 된 #maincontent 안에 div를 넣습니다. divs ID를 부여하십시오. Tabbing in PHP?

1

첫째, 나는 그와 같은 이벤트 핸들러를 구축하지 좋을 것 : 링크를 숨기기를 클릭하면 /이 비슷한 스레드 적절한 내용을

을 보여줍니다. 당신이 정말로 콘텐츠를 정확히 벗어나지 않도록 조심해야합니다. 나는 이렇게 할 것이다 :

<div id="content1"> 
<?php include 'file1.php'; ?> 
</div> 
<div id="content2"> 
<?php include 'file2.php'; ?> 
</div> 

그리고 나서 자바 스크립트로 조작한다. innerHTML을 설정하거나 관련 div를 숨기거나 표시 할 수 있습니다. 따라서 :

<script type="text/javascript"> 
var content = 1; 

function swap_content() { 
    document.getElementById('maincontent').innerHTML = document.getElementById('content' + content).innerHTML 
    if (content == 1) { 
    content = 2; 
    } else { 
    content = 1; 
    } 
} 
</script> 
<a href="#" onclick="swap_content();">Open File</a> 

다른 방법으로는 내용을 복사하는 대신 적절하게 숨기거나 표시 할 수 있습니다.

마지막으로 jQuery와 같은 자바 스크립트 라이브러리에서는 필요하지 않지만 훨씬 더 간단합니다.

0

제게는 AJAX를 사용해야하는 것 같습니다. (또한 인라인 코드로 바인딩해서는 안되는) clickevent에서 대신 XHR 요청으로 내용을로드합니다.

당신의 삶을 편하게하기 위해 개인적인 마음에 드는 곳이 jQuery (www.jquery.com) 인 JavaScript 라이브러리를 살펴 보는 것이 좋습니다. 당신이하려는 일을 성취하기 위해서는 다음과 같이하십시오.

$('#id_to_the_a_tag').click(function() { 
    $("#maincontent").load("file.php"); 
    return: false; 
}); 
관련 문제