fjgrave Posted November 23, 2006 at 03:52 PM Report #66193 Posted November 23, 2006 at 03:52 PM Tenho um form (em php) que tem um link (por exemplo fornecedores). Na form, existem 2 campos: o nome da empresa e o contacto da empresa. Quando clicarmos no link "fornecedores", pretendo abrir uma nova janela, em que possa pesquisar na tabela fornecedores (sql) o nome do fornecedor. Depois no resultado dessa busca, pretendo um botao, em que selecciono o fornecedor que pretendo, e depois feche essa janela e que escreva automaticamente nos 2 campos atras referidos (nome da empresa e contacto). É possivel? Obrigado. 😄
fjgrave Posted November 23, 2006 at 10:20 PM Author Report #66267 Posted November 23, 2006 at 10:20 PM Para que percebam melhor o que pretendo, aqui vai. Uso base de dados sql com uma tabela fornecedores, que contem os campos Nome e Contacto. A primeira pagina, que se chama form.php tem a seguinte configuraçao: O utilizador clica no link "lista fornecedores" e irá para a página nomes.php abrindo uma nova janela. Depois de fazer a pesquisa, apresenta os resultados numa tabela: Depois de clicar em "escolher", passa essa informacao para a pagina form.php: Ja consigo fazer a pesquisa e apresentar os resultados, mas nao sei como fazer no link "escolher" para ele colocar esses valores no form.php... Alguma sugestao? Obrigado desde já... 😄
karva Posted November 23, 2006 at 10:21 PM Report #66268 Posted November 23, 2006 at 10:21 PM isso tem a ver com javascript, porque vai inserir o valor que tu quiseres no campo do form da janela principal, se nao estou em erro. Proud LEIC-A@IST student!
djthyrax Posted November 23, 2006 at 10:27 PM Report #66269 Posted November 23, 2006 at 10:27 PM Talvez isto ajude http://pt.php.net/session 😄 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
Triton Posted November 24, 2006 at 12:55 AM Report #66306 Posted November 24, 2006 at 12:55 AM Se em vez de um nova janela usares por exemplo uma caixa para escolher, depois com JavaScript facilmente actualizas os outros dois campos. 🙂 <3 life
Drone Posted November 24, 2006 at 10:27 AM Report #66317 Posted November 24, 2006 at 10:27 AM Se abrires numa popup window podes utilizar o "opener" Por exemplo: tens o fixeiro form.php com os elementos <input name="nome".....................> <input name="contacto"................> neste mesmo ficheiro crias uma função <script language="javascript"> function updateCampos(nome,contacto) { document.nome_da_form.nome.value = nome; document.nome_da_form.contacto.value = contacto; } </script> Agora quando carregas no Lista Fornecedores abres uma janela popup (window.open) Nesta pagina no link "Escolher" metes isto <a href="#" onClick="opener.updateCampos('empresa XPTO', 'ola_xpto@xpto.com'); window.close()">Escolher</a> Bem nao sei se percebeste qualquer coisa é so dizer... atenção eu nao testei! EDIT: tinha-me esquecido de colocar o window.close(); Anyway isto não é PHP e sim Javascript 🙂
fjgrave Posted November 24, 2006 at 01:21 PM Author Report #66348 Posted November 24, 2006 at 01:21 PM Antes de mais obrigado pelas respostas.. 🙂 Percebi o que quiseste dizer com o javascript.. mas nao consigo obter no form1.php os dados que veem do outro form...
Drone Posted November 24, 2006 at 01:56 PM Report #66354 Posted November 24, 2006 at 01:56 PM mostra ai o source-code! Qualquer das maneiras tu na pagina de Listagem nao necessitas de nenhum formulário, simplesmente em cada "Escolher" chamas a função!
Drone Posted November 24, 2006 at 03:17 PM Report #66377 Posted November 24, 2006 at 03:17 PM form.php: <!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=iso-8859-1" /> <title>Untitled Document</title> <script type="text/JavaScript"> <!-- function abrirjanela(url,nome,parametros) { window.open(url,nome,parametros); } function updateCampos(nome,contacto) { document.getElementById('nome').value = nome; document.getElementById('contacto').value = contacto; } //--> </script> </head> <body> <form id="form1" name="form1" method="post" action=""> <input name="nome" type="text" id="nome" /> <input name="contacto" type="text" id="contacto" /> <a href="#" onclick="abrirjanela('lista.php','','width=500,height=300')">Lista de empresas</a> <br /> </form> </body> </html> lista.php: <!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=iso-8859-1" /> <title>Untitled Document</title> </head> <body> <p>Lista de empresas:</p> <table width="500" border="1" cellspacing="0" cellpadding="3"> <tr> <td><strong>Nome da empresa </strong></td> <td><strong>Contacto</strong></td> <td align="center"><strong>#</strong></td> </tr> <tr> <td>Empresa 1 </td> <td>212223648</td> <td><a href="#" onclick="opener.updateCampos('Empresa 1', '212223648'); window.close()">Escolher</a></td> </tr> <tr> <td>Empresa 2 </td> <td>212219948</td> <td><a href="#" onclick="opener.updateCampos('Empresa 2', '212219948'); window.close()">Escolher</a></td> </tr> <tr> <td>Empresa 3 </td> <td>211235589</td> <td><a href="#" onclick="opener.updateCampos('Empresa 3', '211235589'); window.close()">Escolher</a></td> </tr> </table> <p> </p> </body> </html> Fiz agora para certeficar se o que disse funcionava, testei e funcionou comigo... se é isso que queres adapta à tua maneira 🙂
fjgrave Posted November 24, 2006 at 08:11 PM Author Report #66474 Posted November 24, 2006 at 08:11 PM Drone obrigadao... era mesmo isso que pretendia! 🙂 :) Agora a minha duvida é somente ir buscar esses valores a tabela da base de dados (isso consigo fazer) ... mas e o link "escolher" , como é crio? ? Uso a tabela "fornecedores" com os campos: id nome contacto Essa escolha depente da pesquisa que eu fizer na base de dados (ver imagem em baixo). ? Código da pagina lista.php: <!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=iso-8859-1" /> <title>Untitled Document</title> </head> <body> <p>Procura empresas:</p> <form name="form1" method="get" action="lista.php"> <label>Procurar: <input type="text" name="search" /> </label> <label> <input type="submit" value="Submeter" /> </label> </form> <?php require_once('Connections/busca.php'); ?> <?php $maxRows_Recordset1 = 10; $pageNum_Recordset1 = 0; if (isset($_GET['pageNum_Recordset1'])) { $pageNum_Recordset1 = $_GET['pageNum_Recordset1']; } $startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1; $colname_Recordset1 = "-1"; if (isset($_GET['search'])) { $colname_Recordset1 = (get_magic_quotes_gpc()) ? $_GET['search'] : addslashes($_GET['search']); } mysql_select_db($database_busca, $busca); $query_Recordset1 = sprintf("SELECT * FROM fornecedores WHERE nome LIKE '%%%s%%'", $colname_Recordset1); $query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1); $Recordset1 = mysql_query($query_limit_Recordset1, $busca) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); if (isset($_GET['totalRows_Recordset1'])) { $totalRows_Recordset1 = $_GET['totalRows_Recordset1']; } else { $all_Recordset1 = mysql_query($query_Recordset1); $totalRows_Recordset1 = mysql_num_rows($all_Recordset1); } $totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1; ?><!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=iso-8859-1" /> <title>Untitled Document</title> </head> <body> <p>RESULTADO DA PESQUISA: </p> <table border="1"> <tr> <td>id</td> <td>nome</td> <td>contacto</td> </tr> <?php do { ?> <tr> <td><?php echo $row_Recordset1['id']; ?></td> <td><?php echo $row_Recordset1['nome']; ?></td> <td><?php echo $row_Recordset1['contacto']; ?></td> </tr> <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?> </table> </body> </html> <?php mysql_free_result($Recordset1); ?> <p> </p> <p> </p> </body></html>
Drone Posted November 26, 2006 at 04:22 AM Report #66764 Posted November 26, 2006 at 04:22 AM Então mas isso é facil, no echo só tens de colocar: <?php echo '<a href="#" onclick="opener.updateCampos(\''.$row_Recordset1['nome'].'\', \''.$row_Recordset1['contacto'].'\'); window.close()">Escolher</a>'; ?>
fjgrave Posted November 26, 2006 at 12:44 PM Author Report #66801 Posted November 26, 2006 at 12:44 PM Obrigado por tudo Drone, principalmente a parte de javascript... 😄 🙂 Por acaso ontem ja tinha conseguido fazer isso 😄 Usei: <a href="#" onClick="opener.updateCampos('<?php echo $row_Recordset1['nome']; ?>','<?php echo $row_Recordset1['contacto']; ?>'); window.close()">Escolher</a> Abraço!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now