Olá amigos, é a primeira vez que posto aqui e preciso de uma grande ajuda, pois tenho procurado em vão na internet, soluções para este problema.
O formulário abaixo, funciona quase perfeitamente, com exceção da chamada à função javascript. A minha intenção é que cada vez que se marque um checkbox, a função 'mostrarCampo()' torne visível o campo "input" (logo à direita desse checkbox).
Acontece, que cada vez que marco um checkbox (qualquer um), fica visível somente o input da 1ª linha. O que está errado?
//-----------------função Javasscript (em arquivo separado .js)------------------//
function mostrarCampo(){
case "f_Ins_Suprimento":
document.f_Ins_Suprimento.sClaNome.style.visibility="visible";
document.f_Ins_Suprimento.tfSupNome.style.visibility="visible";
document.f_Ins_Suprimento.tfSupEstoque.style.visibility="visible";
break;
.
.
.
case "f_Solicitacao_2":
est = document.getElementsByName("tfEst[]");
for(var i = 0; i<est.length; i++){
document.f_Solicitacao_2.tfEst[i].style.visibility="visible";
}
break;
default:
break;
}
}
//------------------O FORMULARIO--------------------------------------------------//
<!-- FORMULARIO DINÂMICO COM TRECHOS EM PHP QUE TRAZEM DADOS PARA SEREM MANIPULADOS -->
<form name="f_Solicitacao_2" action="index.php" method="post">
<div align="center">
<table id="tabRel">
<tr>
<th colspan="4">SOLICITAÇÃO DE ALOCAÇÃO DE RECURSOS</th>
</tr>
<tr><td colspan='2'>Equipamentos</td><td>Estoque</td><td></td></tr>
<?php
/*RECUPERANDO UMA VARIÁVEL VINDA DE OUTRO ARQUIVO */
$proId = $_REQUEST['id'];
/* CAPTURANDO E TRATANDO UMA EXCEPTION*/
try {
/*RECEBENDO OS DADOS*/
$lista = Equipamento::listarEquipamento();
/*PARA CADA DADO CONTIDO NO ARRAY LISTA, RECEBENDO E...*/
foreach($lista as $value){
$equ_Id = $value['equ_Id'];
$equ_Nome = $value['equ_Nome'];
$equ_Est = $value['equ_Estoque'];
/*ESCREVENDO NA TELA DENTRO DE UMA TABELA COM AS SEGUINTES COLUNAS
* NA PRIMEIRA, A CHAMADA DA FUNÇÃO 'mostrarCampo() É EXECUTADA QUANDO
* O CHECKBOX FOR MARCADO E DEVE TORNAR VISÍVEL O CONTEUDO DA COLUNA
* SEGUINTE */
echo "
<tr>
<td colspan='2'><input type='checkbox' id='chEquName' name='chEquName[]' onclick='mostrarCampo();' value=\"".$equ_Id."\" />".$equ_Nome."</td>
<td>Estoque :<input name='tfEst[]' id='tfEst[]' type='text' size='4' style='visibility:hidden;' value=\"".$equ_Est."\" /></td>
<td><input type='hidden' name='hProId' value=\"".$proId."\" /></td>
</tr>";
}
/* CASO A EXCEÇÃO TENHA SIDO CAPTURADA, EXEBE MENSAGEM*/
} catch (N_ListaVazia $exc) {
echo $exc->getMessage();
}
?>
</table>
<input type='hidden' name='hLabel' value='tela_Solicitacao_2' />
<p align="center"><input type="submit" name="bSubmit" value="confirmar"/></p>
<p align="center"><a href="?acao=tela_Servicos">VOLTAR</a></p>
<p align="center"><a href="?acao=logout">SAIR</a></p>
</div>
</form>
Pergunta
nic
Olá amigos, é a primeira vez que posto aqui e preciso de uma grande ajuda, pois tenho procurado em vão na internet, soluções para este problema.
O formulário abaixo, funciona quase perfeitamente, com exceção da chamada à função javascript. A minha intenção é que cada vez que se marque um checkbox, a função 'mostrarCampo()' torne visível o campo "input" (logo à direita desse checkbox).
Acontece, que cada vez que marco um checkbox (qualquer um), fica visível somente o input da 1ª linha. O que está errado?
//-----------------função Javasscript (em arquivo separado .js)------------------// function mostrarCampo(){ case "f_Ins_Suprimento": document.f_Ins_Suprimento.sClaNome.style.visibility="visible"; document.f_Ins_Suprimento.tfSupNome.style.visibility="visible"; document.f_Ins_Suprimento.tfSupEstoque.style.visibility="visible"; break; . . . case "f_Solicitacao_2": est = document.getElementsByName("tfEst[]"); for(var i = 0; i<est.length; i++){ document.f_Solicitacao_2.tfEst[i].style.visibility="visible"; } break; default: break; } } //------------------O FORMULARIO--------------------------------------------------// <!-- FORMULARIO DINÂMICO COM TRECHOS EM PHP QUE TRAZEM DADOS PARA SEREM MANIPULADOS --> <form name="f_Solicitacao_2" action="index.php" method="post"> <div align="center"> <table id="tabRel"> <tr> <th colspan="4">SOLICITAÇÃO DE ALOCAÇÃO DE RECURSOS</th> </tr> <tr><td colspan='2'>Equipamentos</td><td>Estoque</td><td></td></tr> <?php /*RECUPERANDO UMA VARIÁVEL VINDA DE OUTRO ARQUIVO */ $proId = $_REQUEST['id']; /* CAPTURANDO E TRATANDO UMA EXCEPTION*/ try { /*RECEBENDO OS DADOS*/ $lista = Equipamento::listarEquipamento(); /*PARA CADA DADO CONTIDO NO ARRAY LISTA, RECEBENDO E...*/ foreach($lista as $value){ $equ_Id = $value['equ_Id']; $equ_Nome = $value['equ_Nome']; $equ_Est = $value['equ_Estoque']; /*ESCREVENDO NA TELA DENTRO DE UMA TABELA COM AS SEGUINTES COLUNAS * NA PRIMEIRA, A CHAMADA DA FUNÇÃO 'mostrarCampo() É EXECUTADA QUANDO * O CHECKBOX FOR MARCADO E DEVE TORNAR VISÍVEL O CONTEUDO DA COLUNA * SEGUINTE */ echo " <tr> <td colspan='2'><input type='checkbox' id='chEquName' name='chEquName[]' onclick='mostrarCampo();' value=\"".$equ_Id."\" />".$equ_Nome."</td> <td>Estoque :<input name='tfEst[]' id='tfEst[]' type='text' size='4' style='visibility:hidden;' value=\"".$equ_Est."\" /></td> <td><input type='hidden' name='hProId' value=\"".$proId."\" /></td> </tr>"; } /* CASO A EXCEÇÃO TENHA SIDO CAPTURADA, EXEBE MENSAGEM*/ } catch (N_ListaVazia $exc) { echo $exc->getMessage(); } ?> </table> <input type='hidden' name='hLabel' value='tela_Solicitacao_2' /> <p align="center"><input type="submit" name="bSubmit" value="confirmar"/></p> <p align="center"><a href="?acao=tela_Servicos">VOLTAR</a></p> <p align="center"><a href="?acao=logout">SAIR</a></p> </div> </form>Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.