Usar valores de variaveis de um iframe

Fil__

Power Member
Boas malta.
Uma questão técnica.
Tenho um sistema de pesquisa composto por 3 select boxes num site que me foi facultado por uma empresa.
Esse site e acedido através do meu site usando um iframe.
A minha questão é:
Como posso usar os valores do sistema que está na iframe de modo a poder utiliza-los num formulário de envio que esta na minha pagina web?
É possível?
 
Existe um controlo pelo browsers de nao permitir comunicações cross-domain.
Se a iframe tiver no mesmo dominio que o teu site, podes aceder facilmente com javascript

Código:
document.getElementById(iframeId).contentDocument

caso contrario a coisa fica mais complicada
 
Ninguem me pode ajudar?
Ando as voltas com o JSON mas nao consigo.
O que pretendo e ter uma pagina compras.php que tem campos de preenchimento (nome, morada, tel) e dentro da pagina compras.php tenho uma iframe para uma pagina com dropboxes de produtos e preciso de pegar na variavel do produto escolhido para ser enviada juntamente com o nome, morada e telefone para o email
TOU DESESPERADO!!!!!!!!
 
O CURL carrega a pagina mas o problema e que a pagina carregada continua a ter o iframe para a aplicacao em ASP (a tal pagina com as dropboxes)
Ou seja, na pratica mantem-se o problema correcto?
Nao consigo pegar no valor da dropboxe e usa-lo.
Ou isto tem alguma manha que nao estou a ver?
 
Já que estar a usar jQuery, podes fazer o seguinte...
-> Usas a função load() para fazer o pedido curl.
Basicamente permite-te fazer um pedido a uma pagina e presentar a resposta, muito semelhante ao get().
Podes inclusive passar argumentos, mais info aqui
http://api.jquery.com/load/

A ideia é:
Código:
$('#atuadiv').load('curl.php');
Se as dropboxes estiveram dentro de alguma div melhor ainda pois assim podes filtar o conteúdo apresentado e a partida ficas com o problema resolvido,
algo como
Código:
$('#atuadiv').load('curl.php #divdropboxes');
Com isto já podes utilizar os valores das dropboxes.
Espero que ajude.

Se quiseres passar argumentos ao curl.php podes fazer
Código:
$('#atuadiv').load('curl.php #divdropboxes' { url: 'urldapaginaabuscar' });
Ao passares argumentos o pedido vai como $_POST.
 
Última edição:
Fiz assim (está mal mas tenho de ir tentanto) e da-me um erro no jquery

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
<script type="text/javascript" src="jquery-1.3.1.js"></script>
</head>
<body>
<script type="text/javascript">
$('#teste').load('http://pt.form.com/guides/?id=ALL&theme=green&language=pt-pt&buttonText=Scw');
</script>
<div id="teste"></div>
<div>
                <form action="form.php" method="post" name="formulario" id="formulario">
                <table width="350" id="formulario">
                <tr>
                <td><label>Nome :</label></td>
                </tr>
                <tr>
                <td><input type="text" name="nome" id="nome" size="50" /></td>
                </tr>
                <tr>
                <td><label>Email :</label></td>
                </tr>
                <td><input type="text" name="email" id="email" size="50" /></td>
                </tr>
                <tr>
                <td id="bot"><input name="button" type="submit" value="Enviar" class="botao">
                </td>
                </tr>
                </table>
                </form>
        </div>
    </body>
</html>
 
A partida é o cross domain, tens de fazer o pedido load para a pagina onde fazes o pedido curl.
Na pagina onde fazes o pedido curl é que podes definer o url que queres pedir.
Só tens de fazer um echo da resposta no pedido curl para ver o conteudo recebido.

Verifica também se o caminho para o jQuery está correcto, podes usar o seguinte:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
 
O caminho para o jquery ta correco.
Nao estou a perceber bem este ponto xloTrigun
"A partida é o cross domain, tens de fazer o pedido load para a pagina onde fazes o pedido curl."
Passand pa pratica o que e suposto fazer?
Thanks pela ajuda e pacienca
 
Tens três coisas.

1. A tua página
2. um ficheiro .php com um script de curl
3. o formulario que pretendes por na tua página

-> com jQuery, a tua página (1) faz um pedido $.load() ao ficheiro .php (2) e este por sua vez, vai buscar o formulário (3)
-> Quando receber o formulário (3), o ficheiro .php (2) vai devolver, à tua página (1), automaticamente o que recebeu, com jQuery pegas no que recebeste e inseres no teu documento.
 
Ora nem mais, obg IMAnAlcoholic :)
Fil__ verifica se o formulário que pretendes ir buscar esta dentro de alguma div. Se estiver podes apresentar apenas essa div e ignorar o resto da página.
 
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
<script type="text/javascript" src="jquery-1.4.4.js"></script>
</head>
<body>
<script type="text/javascript">
$('#teste').load('get_web_page.php');
</script>
<div id="teste"></div>
<div>
<form action="form.php" method="post" name="formulario" id="formulario">
<table width="350" id="formulario">
<tr>
<td><label>Nome :</label></td>
</tr>
<tr>
<td><input type="text" name="nome" id="nome" size="50" /></td>
</tr>
<tr>
<td><label>Email :</label></td>
</tr>
<td><input type="text" name="email" id="email" size="50" /></td>
</tr>
<tr>
<td id="bot"><input name="button" type="submit" value="Enviar" class="botao">
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
Saquei o get_web_page.php do site CURL que me indicaram.
Mas agora onde é que nesse documento meto o site que é para ele apanhar?
 
Coloquei no get_web_page.php a seguinte linha
$url = 'http://www.abola.pt';
mas nao deu nada.
Nao faço ideia como fazer isto... tou a ficar baralhado
 
Falaste em JSON, se existe uma API que retorna em JSON então é possível ler esse JSON mesmo que de um outro domínio.

A outra empresa é que te sugeriu usares o iFrame para a comunicação, ou és tu que estás a tentar fazer algo mais do que a finalidade com que a iframe foi criada?
 
Exigencia da empresa.
JSON ou CURL?
Ja me estou a baralhar com isto >(
O que é melhor e mais simples para o que pretendo (pegar no valor de uma variavel existente numa aplicacao de outra empresa)?
Thanks malta, a serio
 
Back
Topo