2013-12-23 3 views
0

여러 곳에서 사용되는 일부 html 코드가 있습니다.이 파일을 .php 파일에 넣고 필요한 곳에 포함시킵니다. 한 가지 경우에이 코드를 양식에 포함시킵니다.php가 페이지의 양식에 액세스 할 수 없습니다.

이 양식에는 하나의 요소가 있습니다. 그 바로 아래에있는 HTML 코드가있는 PHP 파일의 include가 폼 안에 있습니다.

.php 파일의 포함 된 HTML은 양식 요소에 액세스 할 수 없지만 양식과 동일한 페이지에있는 한 요소에는 문제가 없습니다. 여기 내 양식 선언한다

// inside theIncluded.php 
<div id="aDivToBeIncluded">Testing</div> 

을 그리고 - 서명이 나는이 설명은 다른 요소 (텍스트 상자 등)을 제거하기 때문에 지나치게 복잡 같습니다 여기

은 별도의 .PHP 파일에의 포함 된 코드입니다 :

function doChange(theSelect) 
{ 
    var theSelect = document.getElementById('mySelectId'); 

     // THIS REPORTS THAT THE FORM IS 'objectHTMLFormElement' 
    alert("doChange(), the form is: " + theSelect.form); 


    var theIncludedDiv= document.getElementById('aDivToBeIncluded'); 

     // THIS REPORTS THAT theIncludedDiv IS 'objectHTMLDivElement' 
    alert("doChange(), the included Div is: " + theIncludedDiv); 

     // THIS REPORTS THAT theIncludedDiv.form IS 'undefined' 
    alert("doChange(), the form is: " + theIncludedDiv.form); 
} 

:

<form style="display: inline-block" name="areaComboboxForm" method="post" 
     autocomplete="off" enctype="multipart/form-data"> 

     <select name="mySelect" id="mySelectId" onchange="return doChange(this)" > 
     <option value="one">one</option>   
     <option value="two">two</option> 
     <option value="three">three</option>  
     </select> 

     <?php require_once("theIncluded.php") ?> 

    </form> 

그리고 여기가 귀찮은 코드 다시 요약하자면, 하나의 DOM 요소 인 div가있는 .php 파일의 일부 HTML 코드를 포함합니다. 해당 div는 .php 파일이 포함 된 페이지에서 액세스 할 때 objectHTMLDivElement로 해석됩니다.

하지만 object.htmlDivElement가 포함 된 .form에 액세스하려고하면 양식이 '정의되지 않았습니다.'

이유가 있습니까? 이 코드는 모두 동일한 웹 서버의 동일한 폴더, 즉 localhost XAMPP 웹 서버에 있습니다.

답변

0

코드에 따르면 div는 양식 안에 있으며 자체의 .form은 없습니다.

양식 요소를 원한다면 theIncludedDiv.parentNode을 찾고있을 것입니다.

.form은 HTML4 및 HTML5에서만 속성이 HTMLInputElements이며 일부 동작이 다릅니다 (요소 양식 또는 null의 id이 될 수 있음).

+0

'.form'에 익숙하지 않지만 물어볼 게 있는데, 요소는'.form'이 작동하는 양식 요소 여야합니까? – Leeish

+0

@AndrewPK 페이지 원본을 보았습니다. 포함 된 div는 양식에 있고 선택 항목 아래에는 한 줄입니다. 제 취업은 서버가 이와 같은 페이지를 제공한다는 것입니다. 브라우저가 알고있는 한 div는 페이지 HTML에 하드 코딩되어 있습니다. select와 div 사이의 'view source'까지는 폼과/form 태그 내부에 차이가 없습니다. 브라우저는 div가 PHP include를 통해 페이지에 포함되었다는 것을 알 수있는 방법이 없습니다. – CFHcoder

+0

처음 대답이 잘못되었습니다. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement?redirectlocale=ko-KR&redirectslug=DOM%2FHTMLInputElement#Properties @AndrewPK @ – AndrewPK

관련 문제