2010-06-23 13 views
0

iframe이있는 간단한 페이지가 있습니다. 이 프레임에는 사용자가 입력하는 세 개의 입력 필드가 있습니다. js를 사용하여 모든 입력 필드에서이 데이터를 가져 오는 방법은 무엇입니까?JavaScript로 iframe에서 데이터 가져 오기

여기 JS입니다 :

<script type="text/javascript"> var ticket = window.frames[0].document.getElementById('ticket').ticket; alert(ticket); </script>

그리고 난 프레임 안에 있습니다

<input type='text' name='ticket' id='ticket'...

아무것도 내가 3 inputfield하고 OK를 누릅니다 채울 때 발생합니다. 이 입력 필드에 채워진이 데이터를 .txt 파일로 저장하는 방법보다이 txt를 PHP로 가져 와서 데이터베이스에 채울 수 있습니다.

답변

1

나는 iframe을이 window.frames 속성을 통해 액세스 할 수 있는지 확신 아니에요. 다음과 같이 시도 할 수 있습니다.

var frame = document.getElementsByTagName("iframe")[0] 
    , form = frame.contentDocument.forms[0]; 
alert("OK: ticket=" + form.ticket.value); 

데이터베이스에 양식 값을 저장하는 것은 완전히 다른 문제입니다. 자바 스크립트를 완전히 피하는 것이 가장 쉬운 방법 일 수도 있고 iframe 내의 폼을 자신의 PHP 핸들러에 POST하여 필요한 내용을 저장할 수도 있습니다.

0

2 개의 Iframe에서 텍스트 상자간에 데이터를 교환하는 방법을 알아 내려고 많은 시간을 보냈습니다. (나는 두 iframe의 저자 다.) 낭비되는 많은 시간과 인터넷상의 솔루션을 찾고 난 후에 그 솔루션은 물론 믿을 수 없을만큼 쉬웠습니다. 인터넷에있는 모든 사람은 MUCH 더 복잡한 것들을하고 있습니다. 간단한 것을하고 싶은 당신을 위해!

I는 두 Iframe을 (ID = ifr1ifr2)와 메인 페이지를 갖는다. 각 프레임에는 텍스트 상자 (ID = tb1 ( ifr1))가 있습니다. 자바 스크립트에서 당신은 단순히

parent.ifr1.tb1.value=”whatever” 또는 parent.ifr1.document.getElementByID(‘tb1’).value=”whatever”

또한 변수에 액세스 할 수 있습니다 "분명히, 값을 변경하려면

parent.ifr1.tb1.value 또는

parent.ifr1.document.getElementByID(‘tb1’).value.를 사용하여 iframe을 ifr2에서 tb1의 내용을 얻을 수 있습니다

0을 사용하여 ifr2에서 ifr1var_in_ifr1ifr1

var var_in_ifr1=”whatever”

의 스크립트에 정의되어