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

alexvaz

Passagem de parâmetros

10 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

background-color : referencia da cor;

border: 0px solid #FFFFFF;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É 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???

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