• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

fjgrave

Duvida

12 mensagens neste tópico

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.  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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:

id1.JPG

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:

id2.JPG

Depois de clicar em "escolher", passa essa informacao para a pagina form.php:

id3.JPG

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á...  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se em vez de um nova janela usares por exemplo uma caixa para escolher, depois com JavaScript facilmente actualizas os outros dois campos. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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).

:hmm:

id4.JPG

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>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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>'; ?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado por tudo Drone, principalmente a parte de javascript...    :D  :)

Por acaso ontem ja tinha conseguido fazer isso  :D

Usei:

<a href="#" onClick="opener.updateCampos('<?php echo $row_Recordset1['nome']; ?>','<?php echo $row_Recordset1['contacto']; ?>'); window.close()">Escolher</a>

Abraço!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora