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

Sign in to follow this  
alexvaz

Passagem de parâmetros

Recommended Posts

alexvaz

Boas. Tenho uma tabela dentro de um form onde cada célula tem um textfield. Ao carregar no submeter, queria ir para outra página, guardando o valor de cada célula numa matriz e passando-a por parâmetro. Há alguma maneira de fazer isto? Já tentei com POST e com GET mas não consigo. Se alguém conehcer alguma maneira, seja com form ou sem form, agradecia a ajuda. Obrigado :D

Share this post


Link to post
Share on other sites
revX

No ficheiro do form metes o conteudo do form dentro da tag form e o url do ficheiro para onde queres enviar

form.php

<html>
<head>
</head>
<body>

<form action="ficheiro_para_qual_queres_enviar.php" method="POST">

[ COLA AQUI O CONTEUDO DO FORM ]

Por exemplo:

<input type="text" maxlength="500" name="texto" />

<input type="submit" value="Submeter">
</form>

</body>
</html>

Depois no ficheiro onde queres mostrar fazes

output.php

<html>
<head>
</head>
<body>

<?php

$texto=$_POST['texto'];

echo  "O texto que introduziste é $texto";

?>

</body>
</html>

E aqui fica o output... basicamente ao submeter o conteúdo é enviado e para chamar basta usar $POST_['nome_do_input_do_form'];

Props

Share this post


Link to post
Share on other sites
alexvaz

Sim, eu isso sei fazer. Mas o que quero passar não é texto, é uma matriz de números. O que tenho é isto:

if(isset($_GET["matriz"]))
$matriz=$_GET["matriz"];

else
{		
$matriz[10][10]=0;

$i=1;
$j=1;

for($i=1; $i<10; $i++)
	for($j=1; $j<10; $j++)
	{
		$matriz[$i][$j] = 0;
	}

}		


echo "
<form name=\"form1\" method=\"get\" action=\"sudolu.php\">

<table align=\"center\" border=\"1\" width=\"400\" id=\"table1\">
<tr>
	<td height=\"40\" width=\"40\" align=\"center\" style=\"border-style: solid; border-width: 1px\" bgcolor=\"#C0C0C0\"><input type=\"text\" name=$matriz[1][1] size=\"1\"></td>
	<td height=\"40\" width=\"40\" align=\"center\" style=\"border-style: solid; border-width: 1px\" bgcolor=\"#C0C0C0\"> </td>

.....

e a tabela continua. Agora não sei o k hei-de meter no textfield e no action...

Share this post


Link to post
Share on other sites
milks

Se entendi bem queres uma tabela que represente uma matriz é?

Experimenta assim:

ficheiro_qualquer.php

<?php
$matriz = isset($_POST['matriz']) ? $_POST['matriz'] : null;
/**
* <!> PARA TESTAR A MATRIZ <!>
* <!> REMOVER COMENTARIOS ABAIXO <!>
*/
//if(!is_null($matriz)) {
//  echo '<pre>';
//  print_r($matriz);
//  echo '</pre>';
//}
?>
<form name="frm" method="post">
<table>
<?php for($i=0; $i<=10; $i++) { ?>
  <tr>
  <?php
  for($j=0; $j<=10; $j++) {
    echo '<td>';
    echo '<input type="text" size="5" name="matriz['.$i.']['.$j.']" value="'.$matriz[$i][$j].'" />';
    echo '</td>';
  } // fim do for do $j
  ?>
  </tr>
<?php } // fim do for do $i ?>
</table>
<input type="submit" name="submeter" value=" Okapa " />
</form>

Isto gera-te uma tabela de 10 por 10, e o formulário é submetido para a mesma página, se quiseres testar os valores da matriz é só removeres os comentários lá em cima :D

Os campos ficam com o valor que for submetido, se nenhum for submetido, fica vazio.

Share this post


Link to post
Share on other sites
alexvaz

Epá, obrigadissimo, era mesmo isso que queria. Já agora, não sabes como posso fazer um textfield sem linha á volta e também com cor de fundo?

Share this post


Link to post
Share on other sites
revX

css... defines isso em css... metes

background-color : referencia da cor;

border: 0px solid #FFFFFF;

Share this post


Link to post
Share on other sites
alexvaz

Não percebo muito de css. Podias dar-me uma ajuda? eu tenho isto:

<head>

<style type="text/css">
class TextField{
background-color: transparent;
border: none;
border-color: White;
}
</style>

</head>

...

e depois na linha do textfield tenho:

echo '<input class="TextField" type="text" size="1" maxlength="1" name="matriz['.$i.']['.$j.']" value="'.$matriz[$i][$j].'" />';

Mas não funciona... Sabes onde possa estar o erro?

Share this post


Link to post
Share on other sites
revX

<head> 

<style type="text/css"> 
.TextField{ 
background-color: transparent; 
border: 1px solid #FFFFFF;
padding: 5px; <- presumo que o espaço la dentro de jeito para n ficar apegado ao texto
} 
</style> 

</head> 

Tente assim

Share this post


Link to post
Share on other sites
alexvaz

É mesmo isso! Funcionou! Muito obrigado. Mas agora estou com um problema. a matriz é $matriz[9][9]. Para aceder á linha, posso fazer $matriz[1], $matriz[2], etc. Mas como posso aceder á coluna???

Share this post


Link to post
Share on other sites

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
Sign in to follow this  

×

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.