Jump to content

Duvida


fjgrave

Recommended Posts

Posted

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

Posted

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

Posted

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!

Posted

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

Posted

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 🙂

Posted

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

Posted

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!

Posted

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 🙂

Posted

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

?

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

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

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!

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.