Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

panox

Disparando uma função atraves de outra pagina

Recommended Posts

Ola, tudo bem galera ? Bem eu estou com o seguinte problema...eu tenho uma função que é disparada no return de um onKeyPress :

 

 

function popup2(descricao, cod_gestor2)	{

		if (document.form1.cod_gestor.value == "") {
			alert("Selecione um Projeto !!");
			//	document.form1.qtd2.style.background = "D5D5D5"
			return false;
		}
		if (document.form1.sl2.value == "") {
			alert("Selecione um Centro de Custo !!");
			//	document.form1.sl2.style.background = "D5D5D5"
			return false;
		}
			window.open('pes.asp?descricao='+descricao+'&cod_gestor2='+cod_gestor2,
			'Verificacao',
			'toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes
,width=800,height=600');

}

Aqui, ja começa um dos problemas, ao disparar a função, ela chama a popup certinho mas, ela nao pega o valor que foi digitado, somente na proxima vez em que eu chamar a função ela pega o valor da PRIMEIRA consulta...em outras palavras, esta sempre "atrasada"

 

 

O segundo problema e maior deles é que, ao escolher o produto que você quer na popup, você clica no botao, e ele manda o codigo do produto para uma textbox na mesma pagina que chamou a popup a pouco. Mas quando ela é preenchida, ela deveria disparar uma função que é disparada por onblur, para isso, eu seto o focus nessa text e depois seto em outra qualquer para tentar dar este onblur mas nada acontece...

 

Eu uso este codigo na minha pagina da popup mas nada ainda nao consegui disparar a outra função :

 

 

<%
dim Conexao

set Conexao = Server.CreateObject("ADODB.Connection")

set r5 = Server.CreateObject("adodb.recordset")

Conexao.Open ("DRIVER=Firebird/InterBase(r) driver; UID=SYSDBA;PWD=masterkey; DBNAME=192.168.0.1:C:\IBSERVER\LIDER.fdb")

cod_gestor2 = request.QueryString("cod_gestor2")
descricao = request.QueryString("descricao")


r5.open "select P.APELIDO, P.COD_BARRA, P.DESCRICAO, P.UMEDIDA_COMPRA from CAD_PRODUTO P where P.DESCRICAO STARTING WITH '"& descricao &"' AND EXISTS(SELECT G.COD_GRUPO FROM CAD_PRODUTO_GRUPO_GESTOR G WHERE G.COD_GRUPO = P.COD_GRUPO AND G.COD_GESTOR ='"& cod_gestor2 &"')",Conexao  
%>

<script language="javascript">
	function teste(h) {
		opener.document.form1.apelido.value = h;
		opener.document.form1.apelido.focus();
		opener.document.form1.qtd2.focus();
		window.close();

}
</script>
<style type="text/css">
table
{
font-family: verdana;
font-size: 11px;
color: #000099;
font-weight: bold;
}

select
{
font-family: verdana;
font-size: 11px;
}
</style>


<html>
<body>

<table border="1" width="100%" cellspacing="0" cellpadding="5" name="table" id="table">

<tr bgcolor="#EAEBEF" bordercolorlight="#FFFFFF" bordercolordark="#E3E5EA">
<td><font size=4 color=#000099 type="verdana"><b>Codigo</b></font></td>
<td width="20%"><font size=4 color=#000099 type="verdana"><b>Codigo de Barra</b></font></td>
<td><font size=4 color=#000099 type="verdana"><b>Descricao</b></font></td>
<td><font size=4 color=#000099 type="verdana"><b>UM</b></font></td>
<td><font size=4 color=#000099 type="verdana"><b></b></font></td>
</tr>
<% c=1 %>

<%do until r5.eof%>


<tr>
<td name="apelido"><%=r5("APELIDO")%></td>
<td name="cod_barra"><%=r5("COD_BARRA")%></td>
<td name="descricao"><%=r5("DESCRICAO")%></td>
<td name="um"><%=r5("UMEDIDA_COMPRA")%></td>
<td><input type="hidden" name="h<%=c %>" value="<%=r5("APELIDO") %>"><input type="button" value="Adicionar" onclick="teste(h<%=c %>.value)" ></td>
</tr>

<% 
c=c+1
r5.movenext 
loop
%>



</table>

</body>
</html>

Sera que alguem saberia como resolver esses 2 probleminhas ?

 

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente chamar a função direto da popup!

function teste(h) {
	opener.document.form1.apelido.value = h;
	opener.aFuncaoQueVcQuer();
	window.close();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

no caso, essa função eh chama com o (this.value)

 

eu tentei com this.value, this, apelido.value....document.form1.apelido.Função(this.value) e derivações e nada o.O

 

 

alguma ideia ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cria uma função na página que abre o popup. Chama ela de TESTE() e coloca alguma instrução nela pra rodar.

Aí na página do poup c faz assim:

function teste(h) {
	opener.document.form1.apelido.value = h;
	opener.TESTE();
	window.close();
}

Vê se dá certo...

 

ABRAX!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou ;D

 

desculpa a demora para responder...mas ontem meu PC de pau aqui... bom funcionou com essa TESTE();

 

qual o proximo passo ? =]

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Maravilha!

Agora o próximo passo é chamar sua função uai! Aquela que você tentava chamar pelo ONBLUR. Lembra?

Compartilhar este post


Link para o post
Compartilhar em outros sites

como está essa função? Coloca o cod dela aí pra gente ver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok...vejamos,

 

Disparando a função :

 

<input type="text" name="apelido" id="apelido" onChange="Mandaape(this.value), Mandadesc(this.value), Mandaum(this.value),Pegac(this.value), setafocus(), trava()">

Função esta no script src="ajax.js", dentro do ajax.js aqui estao as 3 Funções Manda's

 

var xmlHttp



function Mandaape(str) {
	xmlHttp = GetXmlHttpObject()
	if (xmlHttp == null) {
		alert("Este browser não suporta HTTP Request")
		return
	}

	var url = "cpro.asp" // o arquivo que ira executar a SQL dos centros de custo
	url = url + "?apelido=" + str // recebe o ID do projeto para filtrar o centro de custo
	xmlHttp.onreadystatechange = stateChanged3
	xmlHttp.open("GET", url, true)
	xmlHttp.send(null)
}

function stateChanged3() {
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		document.getElementById("exibe_pro").innerHTML = xmlHttp.responseText
	}
}



function Mandadesc(str) {
	xmlHttp = GetXmlHttpObject()
	if (xmlHttp == null) {
		alert("Este browser não suporta HTTP Request")
		return
	}

	var url = "cdesc.asp" // o arquivo que ira executar a SQL dos centros de custo
	url = url + "?apelido=" + str // recebe o ID do projeto para filtrar o centro de custo
	xmlHttp.onreadystatechange = stateChanged4
	xmlHttp.open("GET", url, true)
	xmlHttp.send(null)
}


function stateChanged4() {
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		document.getElementById("exibe_desc").innerHTML = xmlHttp.responseText
	}
}





function Mandaum(str) {
	xmlHttp = GetXmlHttpObject()
	if (xmlHttp == null) {
		alert("Este browser não suporta HTTP Request")
		return
	}

	var url = "cum.asp" // o arquivo que ira executar a SQL dos centros de custo
	url = url + "?apelido=" + str // recebe o ID do projeto para filtrar o centro de custo
	xmlHttp.onreadystatechange = stateChanged5
	xmlHttp.open("GET", url, true)
	xmlHttp.send(null)
}

function stateChanged5() {
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		document.getElementById("exibe_um").innerHTML = xmlHttp.responseText
	}
}




function GetXmlHttpObject() {
	var objXMLHttp = null

	if (window.XMLHttpRequest) {
		objXMLHttp = new XMLHttpRequest()
	}
	else if (window.ActiveXObject) {
		objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP")
	}
	return objXMLHttp
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

kd o onblur? qual é o erro q acusa? qual é a função que você quer rodar??

Compartilhar este post


Link para o post
Compartilhar em outros sites

o Onblur, eu tirei um minuto para tentar com OnChange...mas deu na mesma.. eu quero rodar as funções Mandadesc e Mandaum...

 

eu estou tentando rodar ela pelo opener...agora da que apelido nao foi indicado

 

<script language="javascript">
	function teste(h) {
		opener.document.form1.apelido.value = h;
		opener.document.form1.apelido.focus();
		opener.document.form1.qtd2.focus();
		opener.Mandadesc(apelido.value);
		opener.Mandaum(apelido.value);
		window.close();

}
</script>

teria q ser com apelido porque é o textbox da minha "opener" que contem o codigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.