Получение данных из iframe с помощью JavaScript

У меня есть простая страница с iframe. В этом фрейме есть три поля ввода, которые пользователь заполняет. Как получить эти данные в каждом поле ввода с помощью js?

Вот 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 поля ввода и нажимаю ОК. Как сохранить эти данные, которые заполнили эти поля ввода, в файл .txt, чем я могу получить этот текст с помощью php и заполнить базу данных.


person Rew    schedule 23.06.2010    source источник


Ответы (2)


Я не уверен, что фреймы доступны через свойство window.frames. Вы можете попробовать что-то вроде этого:

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

Хранение значений формы в базе данных — это совсем другая проблема. Возможно, проще всего полностью отказаться от JavaScript и просто заставить форму в iframe выполнять POST для вашего собственного обработчика PHP, который может сохранять содержимое по мере необходимости.

person maerics    schedule 23.06.2010

Я потратил много времени, пытаясь понять, как обмениваться данными между текстовыми полями в двух фреймах. (Я автор обоих фреймов). После большого количества потраченного времени и поиска решений в Интернете решение было, конечно, невероятно простым. Все в Интернете занимаются ГОРАЗДО более сложными вещами. Для тех из вас, кто хочет сделать что-то простое!

У меня есть главная страница с двумя фреймами (ID = ifr1 и ifr2). Каждый кадр имел текстовое поле (ID = tb1ifr1)). В javascript вы можете получить содержимое tb1 в iframe ifr2, просто используя

parent.ifr1.tb1.value or parent.ifr1.document.getElementByID(‘tb1’).value.

Очевидно, чтобы изменить значение"

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

Вы также можете получить доступ к переменной из ifr1 из ifr2, используя

parent.ifr1.var_in_ifr1 где var_in_ifr1 определено в сценарии ifr1

var var_in_ifr1=”whatever”

person Clifford Archer    schedule 23.01.2013