Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rzorr

[Resolvido] Tabela , Input e php

Recommended Posts

Boa noite galera estou montando um sistema onde o adm vai selecionar o que foi certo e o que foi meio certo e o que foi errado, ao clicar em gravar, manda tudo para o banco, a minha dificuldade esta no seguinte como coloco um input dentro de uma tabela sem aparecer as bordas do input ou e como mando os dados para o banco com os dados da tabela sem input alguem consegue me dar uma força

segue codigo

while ($linhas = mysql_fetch_array($conf))

{
 echo '<table width="800" border="1" align="center">
 <tr>
   <form action="teste.php" method="post">
   <td align="center"  width="50">' . $linhas ['nome'] . '</td>
   <td align="center" width="50">' . $linhas ['chute'] . '</td>
<td align="center" width="50">' . $linhas['data']   .'</td>
<td align="center" width="50">' . $linhas['pontos']   .'</td>
   <td align="center" width="50"><input name="certo" type="checkbox" value="100" /></td>
<td align="center" width="50"><input name="meio" type="checkbox" value="50" /></td>
<td align="center" width="50"><input name="errado" type="checkbox" value="0" /></td>
 </tr>

</table>';

}
		}
		?>
           <input type="submit" name="grava" value="Gravar">
           </form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria mais fácil ajudar se você explicasse o que você está fazendo... :-/

 

É tipo um teste online?

 

-

 

Para remover as bordas, use CSS:

<style>
.sem-bordas { border:0; }
</style>
<input type="text" class="sem-bordas">

 

Se o que você quer é que o campo esteja invisível, então use o tipo 'hidden':

<input type="hidden" name="campo" value="valor" />

 

-

 

Você só pode enviar dados para o servidor por meio dos métodos GET ou POST, usando um formulário que enviará os dados quando for submetido ou XHR para enviar os dados por meio de requisições Ajax.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce não precisa de input para fazer isso pode fazer direto em variaveis usando-as para exibir e para atualizar um status da pegunta com UPDATE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte acho que eu não consegui expressar bem o que eu queria, mas é assim

 

Eu fiz uma tabela no banco que recebe a resposta que o cara enviou beleza essa deu certinho ai agora o cara que administra o sistema vai verificar, então ele abre uma pagina que carrega todos os dados do banco em uma tabela ai nessa tabela tem uma checkbox para confirma se esta certo ou errado ou se esta meio certo ai ele seleciona o que quer e clica em gravar ai manda tudo para outra pagina que faz a interação com o banco grava os pontos em uma tabela de pontuação onde tem o nome do usuário e sua pontuação, minha dificuldade esta ai enviar dados, pelo form beleza, mas os dados como nome e data que estão na tabela como faço para enviar para o banco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É como o amigo mangakanah sugeriu, você deve usar o input hidden para enviar esses dados sem caixa de texto. É só incluir duas linhas no while:

 

while ($linhas = mysql_fetch_array($conf))

 

{

echo '<table width="800" border="1" align="center">

<tr>

<form action="teste.php" method="post">

<td align="center" width="50">' . $linhas ['nome'] . '</td>

<td align="center" width="50">' . $linhas ['chute'] . '</td>

<td align="center" width="50">' . $linhas['data'] .'</td>

<td align="center" width="50">' . $linhas['pontos'] .'</td>

<td align="center" width="50"><input name="certo" type="checkbox" value="100" /></td>

<td align="center" width="50"><input name="meio" type="checkbox" value="50" /></td>

<td align="center" width="50"><input name="errado" type="checkbox" value="0" /></td>

<input type="hidden" name="nome" value="' . $linhas['nome'] . '" />

<input type="hidden" name="data" value="' . $linhas['data'] . '" />

</tr>

 

</table>';

 

}

}

?>

<input type="submit" name="grava" value="Gravar">

</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal

seguinte funciona com esse campo em hidden mas tem um detalhe ele só manda uma das linhas da tabela e não todas as linhas aguem sabe me ajudar nessa etapa obrigado

 

Pessoal consegui um pouco de progresso consegui mandar um a um para o banco mas tudo de uma vez só não mas to tentando e esperando algum abençoado me ajudar obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu até imaginei, mas como vi que nos outros campos não tem array no nome, achei que também fosse funcionar nos hidden. Basta você incluir colchetes [] no nome deles, e depois pra pegar é só usar $_POST['nome'][0], $_POST['nome'][1], etc.

 

while ($linhas = mysql_fetch_array($conf))

 

{

echo '<table width="800" border="1" align="center">

<tr>

<form action="teste.php" method="post">

<td align="center" width="50">' . $linhas ['nome'] . '</td>

<td align="center" width="50">' . $linhas ['chute'] . '</td>

<td align="center" width="50">' . $linhas['data'] .'</td>

<td align="center" width="50">' . $linhas['pontos'] .'</td>

<td align="center" width="50"><input name="certo" type="checkbox" value="100" /></td>

<td align="center" width="50"><input name="meio" type="checkbox" value="50" /></td>

<td align="center" width="50"><input name="errado" type="checkbox" value="0" /></td>

<input type="hidden" name="nome[]" value="' . $linhas['nome'] . '" />

<input type="hidden" name="data[]" value="' . $linhas['data'] . '" />

</tr>

 

</table>';

 

}

}

?>

<input type="submit" name="grava" value="Gravar">

</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu até imaginei, mas como vi que nos outros campos não tem array no nome, achei que também fosse funcionar nos hidden. Basta você incluir colchetes [] no nome deles, e depois pra pegar é só usar $_POST['nome'][0], $_POST['nome'][1], etc.

 

while ($linhas = mysql_fetch_array($conf))

 

{

echo '<table width="800" border="1" align="center">

<tr>

<form action="teste.php" method="post">

<td align="center" width="50">' . $linhas ['nome'] . '</td>

<td align="center" width="50">' . $linhas ['chute'] . '</td>

<td align="center" width="50">' . $linhas['data'] .'</td>

<td align="center" width="50">' . $linhas['pontos'] .'</td>

<td align="center" width="50"><input name="certo" type="checkbox" value="100" /></td>

<td align="center" width="50"><input name="meio" type="checkbox" value="50" /></td>

<td align="center" width="50"><input name="errado" type="checkbox" value="0" /></td>

<input type="hidden" name="nome[]" value="' . $linhas['nome'] . '" />

<input type="hidden" name="data[]" value="' . $linhas['data'] . '" />

</tr>

 

</table>';

 

}

}

?>

<input type="submit" name="grava" value="Gravar">

</form>

 

Amigo desculpe minha burrice, mas é o seguinte ou eu não entendi ou se entendi depois terei que fazer

vamos supor se eu tiver 200 registro vou ter que fazer 200 vezes $_POST['nome'][0];$_POST['nome'][1]; e assim por diante pode me explicar melhor não consegui entender muito bem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria em um while.. Mas como você pega esses dados dos checkbox na outra página?

 

Amigão é o seguinte essa pagina ta funcionando assim eu faço uma consulta no banco recebo os dados nessa tabela

ai dessa tabela o que eu quero fazer é confirmar se a resposta esta certa e mandar tudo para outra tabela do banco

mas antes eu queria escrever na tela para ver se esta funcionando, o que acontece é o seguinte eu queria mandar tudo de uma vez mas não consegui fazer ainda então eu fiz para mandar 1 por um só que na pagina que eu mando escrever só escreve uma da opçoes então resumindo eu tenho dois problemas escrever mandar tudo de uma e escrever todos os dados na outra pagina.

vou postar o codigo todo ai para ficar mais facil

 

essa é pagina que recebe os dados do banco é feito a conferencia e quando clica em gravar manda para outra pagina

include("cone.php");



	$conf = mysql_query("SELECT * FROM  chutes_dia WHERE conferido = 0 ORDER BY nome ASC ") 
	or die ("impossível conctar ao banco de dados");
	$cont = mysql_num_rows($conf);
	if($cont == 0){

		echo 'não existe registro';
		}else{

?>
<!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=utf-8" />
<title>Untitled Document</title>
<script language="javascript">
function confere(){
if(document.getElementById('check_c').checked = true)
	{
		document.getElementById('check_m').disabled = true;
		document.getElementById('check_e').disabled = true;

	}else if(document.getElementById('check_e').checked = true)
	{
		document.getElementById('check_c').disabled = true;
		document.getElementById('check_m').disabled = true;

	}else (document.getElementById('check_m').checked = true)
	{
		document.getElementById('check_c').disabled = true;
		document.getElementById('check_e').disabled = true;
	}


}

</script>
</head>

<body>
  <table width="800" border="1" align="center">
 <tr>
   <td align="center" width="50">Nome:</td>
   <td align="center" width="50">Chute:</td>
   <td align="center" width="50" >Data</td>
   <td align="center" width="50" >Pontos:</td>
   <td align="center" width="50">correto:</td>
   <td align="center" width="50">Meio certo:</td>
   <td align="center" width="50">errado:</td>
   <td align="center" width="50">Ok</td>
   <td align="center" width="50">Gravar</td>

<?php

while ($linhas = mysql_fetch_array($conf))

{
 echo '<table width="800" border="1" align="center">
 <tr>
   <form action="teste.php" method="post">
   <td align="center" width="60">' . $linhas ['nome']     .'</td>
   <td align="center" width="60">' . $linhas ['chute']    .'</td>
<td align="center" width="60">' . $linhas ['data']     .'</td>
<td align="center" width="60">' . $linhas ['pontos']   .'</td>
   <td align="center" width="60"><input name="certo"   id="check_c"   type="checkbox"     value="100"  onclick="return confere()" /></td>
<td align="center" width="60"><input name="meio"    id="check_m"   type="checkbox"     value="50"   onclick="return confere()" /></td>
<td align="center" width="60"><input name="errado"  id="check_e"   type="checkbox"     value="0"    onclick="return confere()" /></td>
   <td align="center" width="60"><input name="ok"      id="check_OK"  type="checkbox"    value="1" /></td>
<input type="hidden" name="nome" value="' . $linhas['nome'] . '" />
<input type="hidden" name="chute" value="' . $linhas['chute'] . '" />
<input type="hidden" name="data" value="' . $linhas['data'] . '" />
<input type="hidden" name="pontos" value="' . $linhas['pontos'] . '" />
 <td align="center" width="60"><input type="submit" value="gravar" /></td>
 </tr>
</table>
 </form>';



}
}

		?>

 

essa é a pagina que recebe os dados novos

<?php



$certo = $_POST['certo'];
$meio = $_POST['meio'];
$errado = $_POST['errado'];
$nome = $_POST['nome'];
$data = $_POST['data'];
$chute = $_POST['chute'];
$pontos = $_POST['pontos'];
$confere = $_POST['ok'];

?>


<!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=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php

echo

$certo .'</br>',
$meio .'</br>',
$errado .'</br>',
$nome .'</br>',
$data .'</br>',
$chute .'</br>',
$confere ;




?>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigão é o seguinte essa pagina ta funcionando assim eu faço uma consulta no banco recebo os dados nessa tabela

ai dessa tabela o que eu quero fazer é confirmar se a resposta esta certa e mandar tudo para outra tabela do banco

mas antes eu queria escrever na tela para ver se esta funcionando, o que acontece é o seguinte eu queria mandar tudo de uma vez mas não consegui fazer ainda então eu fiz para mandar 1 por um só que na pagina que eu mando escrever só escreve uma da opçoes então resumindo eu tenho dois problemas escrever mandar tudo de uma e escrever todos os dados na outra pagina.

vou postar o codigo todo ai para ficar mais facil

 

essa é pagina que recebe os dados do banco é feito a conferencia e quando clica em gravar manda para outra pagina

include("cone.php");



	$conf = mysql_query("SELECT * FROM  chutes_dia WHERE conferido = 0 ORDER BY nome ASC ") 
	or die ("impossível conctar ao banco de dados");
	$cont = mysql_num_rows($conf);
	if($cont == 0){

		echo 'não existe registro';
		}else{

?>
<!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=utf-8" />
<title>Untitled Document</title>
<script language="javascript">
function confere(){
if(document.getElementById('check_c').checked = true)
	{
		document.getElementById('check_m').disabled = true;
		document.getElementById('check_e').disabled = true;

	}else if(document.getElementById('check_e').checked = true)
	{
		document.getElementById('check_c').disabled = true;
		document.getElementById('check_m').disabled = true;

	}else (document.getElementById('check_m').checked = true)
	{
		document.getElementById('check_c').disabled = true;
		document.getElementById('check_e').disabled = true;
	}


}

</script>
</head>

<body>
  <table width="800" border="1" align="center">
 <tr>
   <td align="center" width="50">Nome:</td>
   <td align="center" width="50">Chute:</td>
   <td align="center" width="50" >Data</td>
   <td align="center" width="50" >Pontos:</td>
   <td align="center" width="50">correto:</td>
   <td align="center" width="50">Meio certo:</td>
   <td align="center" width="50">errado:</td>
   <td align="center" width="50">Ok</td>
   <td align="center" width="50">Gravar</td>

<?php

while ($linhas = mysql_fetch_array($conf))

{
 echo '<table width="800" border="1" align="center">
 <tr>
   <form action="teste.php" method="post">
   <td align="center" width="60">' . $linhas ['nome']     .'</td>
   <td align="center" width="60">' . $linhas ['chute']    .'</td>
<td align="center" width="60">' . $linhas ['data']     .'</td>
<td align="center" width="60">' . $linhas ['pontos']   .'</td>
   <td align="center" width="60"><input name="certo"   id="check_c"   type="checkbox"     value="100"  onclick="return confere()" /></td>
<td align="center" width="60"><input name="meio"    id="check_m"   type="checkbox"     value="50"   onclick="return confere()" /></td>
<td align="center" width="60"><input name="errado"  id="check_e"   type="checkbox"     value="0"    onclick="return confere()" /></td>
   <td align="center" width="60"><input name="ok"      id="check_OK"  type="checkbox"    value="1" /></td>
<input type="hidden" name="nome" value="' . $linhas['nome'] . '" />
<input type="hidden" name="chute" value="' . $linhas['chute'] . '" />
<input type="hidden" name="data" value="' . $linhas['data'] . '" />
<input type="hidden" name="pontos" value="' . $linhas['pontos'] . '" />
 <td align="center" width="60"><input type="submit" value="gravar" /></td>
 </tr>
</table>
 </form>';



}
}

		?>

 

essa é a pagina que recebe os dados novos

<?php



$certo = $_POST['certo'];
$meio = $_POST['meio'];
$errado = $_POST['errado'];
$nome = $_POST['nome'];
$data = $_POST['data'];
$chute = $_POST['chute'];
$pontos = $_POST['pontos'];
$confere = $_POST['ok'];

?>


<!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=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php

echo

$certo .'</br>',
$meio .'</br>',
$errado .'</br>',
$nome .'</br>',
$data .'</br>',
$chute .'</br>',
$confere ;




?>
</body>
</html>

Pessoal consegui fazer um progresso acho eu mas não consegui resolver o problema montei o array mas ele so escreve a ultima linha da table não escreve todas as linhas.

 

alguem mais pode me ajudar Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não tinha entendido o que era feito nesse while que escreve as linhas, mas agora percebi que esse botão gravar é feito um para cada linha da tabela, e que cada linha tem um form próprio. Como o objetivo é conseguir mandar todos de uma vez, nem vamos perder tempo pegando um só pra testar. Pra mandar todos de uma vez, primeiro temos que tirar a tag form e o botão gravar de dentro do while pra que fique um form e um botão só para toda a tabela, e incluir os colchetes [] no nome de cada campo para indicar que é um array.

 

<?php
echo '<form action="teste.php" method="post">';
while ($linhas = mysql_fetch_array($conf))

{
        echo '<table width="800" border="1" align="center">
 <tr>
   <td align="center" width="60">' . $linhas ['nome']     .'</td>
   <td align="center" width="60">' . $linhas ['chute']    .'</td>
       <td align="center" width="60">' . $linhas ['data']     .'</td>
       <td align="center" width="60">' . $linhas ['pontos']   .'</td>
   <td align="center" width="60"><input name="certo[]"   id="check_c"   type="checkbox"     value="100"  onclick="return confere()" /></td>
       <td align="center" width="60"><input name="meio[]"    id="check_m"   type="checkbox"     value="50"   onclick="return confere()" /></td>
       <td align="center" width="60"><input name="errado[]"  id="check_e"   type="checkbox"     value="0"    onclick="return confere()" /></td>
   <td align="center" width="60"><input name="ok[]"      id="check_OK"  type="checkbox"    value="1" /></td>
       <input type="hidden" name="nome[]" value="' . $linhas['nome'] . '" />
       <input type="hidden" name="chute[]" value="' . $linhas['chute'] . '" />
       <input type="hidden" name="data[]" value="' . $linhas['data'] . '" />
       <input type="hidden" name="pontos[]" value="' . $linhas['pontos'] . '" />

 </tr>
</table>';

       }
 echo '<td align="center" width="60"><input type="submit" value="gravar" /></td>
       </form>';

 

E para pegar os dados:

 

<?php

$x = 0;
<?php
while ($x < count($_POST['nome'])) {
$certo[] = $_POST['certo'][$x];
$meio[] = $_POST['meio'][$x];
$errado[] = $_POST['errado'][$x];
$nome[] = $_POST['nome'][$x];
$data[] = $_POST['data'][$x];
$chute[] = $_POST['chute'][$x];
$pontos[] = $_POST['pontos'][$x];
$confere[] = $_POST['ok'][$x];
$x++;
}

?>


<!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=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
$x = 0;
while ($x < count($nome)) {
echo

$certo[$x] .'</br>',
$meio[$x] .'</br>',
$errado[$x] .'</br>',
$nome[$x] .'</br>',
$data[$x] .'</br>',
$chute[$x] .'</br>',
$confere[$x] ;

$x++;
}

?>
</body>
</html>

 

Com isso acredito que já consiga pegar todos de uma vez. Não há necessidade de usar dois whiles na segunda página, eu só coloquei assim pra aproveitar a sua linha de raciocínio. Mas poderia ser só o segundo while e escrever os dados direto do $_POST sem armazenar os dados em variáveis.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não tinha entendido o que era feito nesse while que escreve as linhas, mas agora percebi que esse botão gravar é feito um para cada linha da tabela, e que cada linha tem um form próprio. Como o objetivo é conseguir mandar todos de uma vez, nem vamos perder tempo pegando um só pra testar. Pra mandar todos de uma vez, primeiro temos que tirar a tag form e o botão gravar de dentro do while pra que fique um form e um botão só para toda a tabela, e incluir os colchetes [] no nome de cada campo para indicar que é um array.

 

<?php
echo '<form action="teste.php" method="post">';
while ($linhas = mysql_fetch_array($conf))

{
        echo '<table width="800" border="1" align="center">
 <tr>
   <td align="center" width="60">' . $linhas ['nome']     .'</td>
   <td align="center" width="60">' . $linhas ['chute']    .'</td>
       <td align="center" width="60">' . $linhas ['data']     .'</td>
       <td align="center" width="60">' . $linhas ['pontos']   .'</td>
   <td align="center" width="60"><input name="certo[]"   id="check_c"   type="checkbox"     value="100"  onclick="return confere()" /></td>
       <td align="center" width="60"><input name="meio[]"    id="check_m"   type="checkbox"     value="50"   onclick="return confere()" /></td>
       <td align="center" width="60"><input name="errado[]"  id="check_e"   type="checkbox"     value="0"    onclick="return confere()" /></td>
   <td align="center" width="60"><input name="ok[]"      id="check_OK"  type="checkbox"    value="1" /></td>
       <input type="hidden" name="nome[]" value="' . $linhas['nome'] . '" />
       <input type="hidden" name="chute[]" value="' . $linhas['chute'] . '" />
       <input type="hidden" name="data[]" value="' . $linhas['data'] . '" />
       <input type="hidden" name="pontos[]" value="' . $linhas['pontos'] . '" />

 </tr>
</table>';

       }
 echo '<td align="center" width="60"><input type="submit" value="gravar" /></td>
       </form>';

 

E para pegar os dados:

 

<?php

$x = 0;
<?php
while ($x < count($_POST['nome'])) {
$certo[] = $_POST['certo'][$x];
$meio[] = $_POST['meio'][$x];
$errado[] = $_POST['errado'][$x];
$nome[] = $_POST['nome'][$x];
$data[] = $_POST['data'][$x];
$chute[] = $_POST['chute'][$x];
$pontos[] = $_POST['pontos'][$x];
$confere[] = $_POST['ok'][$x];
$x++;
}

?>


<!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=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
$x = 0;
while ($x < count($nome)) {
echo

$certo[$x] .'</br>',
$meio[$x] .'</br>',
$errado[$x] .'</br>',
$nome[$x] .'</br>',
$data[$x] .'</br>',
$chute[$x] .'</br>',
$confere[$x] ;

$x++;
}

?>
</body>
</html>

 

Com isso acredito que já consiga pegar todos de uma vez. Não há necessidade de usar dois whiles na segunda página, eu só coloquei assim pra aproveitar a sua linha de raciocínio. Mas poderia ser só o segundo while e escrever os dados direto do $_POST sem armazenar os dados em variáveis.

 

Amigo funcionou belezinha agora vou fazer isso ir para outra tabela do banco muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.