2014-04-19 5 views
-1

텍스트 상자를 사용하는 웹 사이트에서 작업 중이며 사용자가 제출 한 내용으로 작업을 수행합니다.HTML에서 작동하지만 자바 스크립트가 아닌 자바 스크립트 객체

PHP (all HTML)를 사용하지 않는 인덱스 페이지에서 Javascript 탭을 사용하면 완벽하게 정상적으로 작동합니다. 그러나 사용자가 무언가를 입력하고 제출하면 다음에로드 된 페이지에 PHP가 있습니다. PHP 페이지는 HTML을 인쇄하는 함수를 호출하지만이 페이지가 이전 색인 페이지와 완전히 동일하더라도 탭이 전혀 작동하지 않습니다. 내 scripts.js 파일

... 
<article id="navtabs" class="grid col-full"> 
    <h2>Tabs</h2> 
    <div class=""> 
     <ul class="tabs clearfix"> 
      <li><a href="#tab1">First</a></li> 
      <li><a href="#tab2">Second</a></li> 
      <li><a href="#tab3">Third</a></li> 
     </ul> 
     <div class="tab_container"> 
      <article id="tab1" class="tab_content"> 
       <p>Lorem ipsum dolor sit amet</p> 
      </article> 

      <article id="tab2" class="tab_content"> 
       <h6>Heading</h6> 
       <p>Lorem ipsum dolor sit amet</p> 
      </article> 

      <article id="tab3" class="tab_content"> 
       <h6>Heading</h6> 
       <p>Lorem ipsum dolor sit amet</p> 
      </article> 
     </div> 
     </div> 
</article> 
... 

자바 스크립트 코드 는 다음과 같습니다

$(document).ready(function() { 
... 

//TABS 
var tabContents = $(".tab_content").hide(), 
    tabs = $("ul.tabs li"); 

tabs.first().addClass("active").show(); 
tabContents.first().show(); 

tabs.click(function() { 
    var $this = $(this), 
     activeTab = $this.find('a').attr('href'); 

    if(!$this.hasClass('active')){ 
     $this.addClass('active').siblings().removeClass('active'); 
     tabContents.hide().filter(activeTab).fadeIn(); 
    } 
    return false; 
}); 
... 
}); 

하는 PHP 함수 안에 넣을 때에 만 아니라 HTML을 사용하는 경우이 작업을하는 이유가 뭘까요?

설명을위한 편집 : 작동하는 버전에서는 단순한 HTML입니다. 버전에서 나는 HTML의 반향을하고있다. 이것은 실패한 버전입니다.

+0

콘솔은 무엇을 말합니까? – Shomz

+0

콘솔이 비어 있으며 오류나 경고가 없습니다. – SuperXero

+0

페이지 원본보기 및 비교? – iamsleepy

답변

1

HTML이 올바르며 javascript가 올바르다가로드 된 경우 HTML이 정적 파일에서 왔는지 아니면 PHP로 생성되었는지에 차이가 없습니다. 브라우저는 여전히 그것을 단지 HTML로 본다 (PHP는 서버 측이므로 브라우저는 결코 그것을 볼 수 없다). 자바 스크립트가 실행되는 것은 브라우저에있다. 다음과 같은 가능성으로 우리를 잎

:

  1. PHP를 통해 생성 된 HTML은 어떤 식 으로든 (내가 아는 당신이 아니라고하지만, 한 번 확인)
  2. 자바 스크립트 파일이 아닌 다른입니다 두 번째로로드됩니다

이것은 PHP로 생성 된 전체 페이지를로드하는 것으로 가정합니다. 아약스 요구를 추가하기 시작하면 탭 코드가 문서 준비 상태로 설정되고 상황이 바뀌면서 그때 그대로 페이지.

+0

내가 이것을 읽을 때 똑같이 생각하고 있었다. 스크립트가 에코되는 프로세스를 이해하는 것이 좋습니다. – TriniBoy

+0

정확히 같은 HTML입니다. 나는 원본 페이지를 가져 와서 PHP로 간단하게 캡슐화하고 그것을 프린트하기 위해 에코를 사용했다. 그리고 그것은 작동하지 않았다. HTML 내부에서 아무 것도 변경하지 않았으므로 javascript 파일이로드되고 있다고 가정합니다. 그리고 네, 전체 페이지는 PHP (단지 간단한 에코)입니다. – SuperXero

+0

PHP로 echo 한 문자열에 전체 HTML을 복사 했습니까?인용 부호를 둘러싼 문제 일 수 있습니다. * 생성 된 * HTML이 일치하는지 (즉, 페이지를로드하고, 브라우저에서 '소스보기'를 수행하고 (종종 마우스 오른쪽 버튼 클릭 메뉴에서)) 두 페이지에 대한 HTML 소스를 비교해야합니다. – Adam

0

간단한 답.

HTML 만 사용할 때 작동하는 이유는 있지만 PHP 기능을 넣을 때는 생각할 수없는 아이디어가 있습니까?

둘 다 매우 다릅니다. Javascript는 클라이언트 측 코딩이지만 PHP는 서버 측 코딩입니다.

당신은 정말 그 차이점을 이해해야합니다. 또한 구문이 다릅니다.

+0

당신은 'echo'할 수 있습니다. –

+0

그게 내가하고있는 일입니다. 나는 그것을 지정해야만했다. – SuperXero

관련 문제