Ir para conteúdo
Fórum Script Brasil
  • 0

abrir div a partir de onclik em checkbox


Carlos Rocha

Pergunta

Ola.

Tenho o seguinte codigo :

<form name="verpreco" method="post" action="?acao=verpreco">
<table width="500" border="1" align="center">
  <tr>
    <td colspan="10" align="center" valign="middle">Pesquisa de pre&ccedil;os de fornecedores:</td>
  </tr>
  <tr><td colspan="10">Produto:</td></tr>
    <?
    $i=1;
    while (list($id, $nome) = mysql_fetch_row($produtos))
    {
            echo "<td><input type='checkbox' name='produtoid[]' value='$id' onclick='mostra('valor$id')'/>$nome<br>";
            echo "<div id='valor$id' name='valor$id' style='display:none'><input type='text' name='valor$id'></div>";
            echo "</td>";
            if( $i%10==0 ) {echo '</tr><tr>';}
    
            $i++;
    }

    ?>    
    
  <tr>
    <td colspan="10" align="center" valign="middle"><input type="submit" value="Pesquizar" /></td>
  </tr>
</table>
</form>
A ideia é listar nomes de produtos em checkboxes e, a medida que esses produtos vão sendo marcados ou desmarcados, vão sendo abertas pela funçao mostra() divs para o cliente colocar a quantidade daquele produto. Porem, quando chamo a funçao mostra, da erro na linha trez dizendo que mostra('parametro') é um objeto. Onde estou errando?
function mostra(div)
{
    alert (div);
if (document.getElementById(div).style.display != "none")
{
document.getElementById(div).style.display = "none";
}
else
{
document.getElementById(div).style.display = "block";
}
}

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Ai esta o HTML depois de interpretado o php

<form name="verpreco" method="post" action="?acao=verpreco">
<table width="500" border="1" align="center">
  <tr>
    <td colspan="10" align="center" valign="middle">Pesquisa de pre&ccedil;os de fornecedores:</td>
  </tr>
  <tr><td colspan="10">Produto:</td></tr>
    <td><input type='checkbox' name='produtoid[]' value='1' onclick='mostra('valor1')'/>doce<br>
        <div id='valor1' name='valor1' style='display:none'><input type='text' name='valor1'></div>
    </td>
    
    <td><input type='checkbox' name='produtoid[]' value='2' onclick='mostra('valor2')'/>bala<br>
        <div id='valor2' name='valor2' style='display:none'><input type='text' name='valor2'></div>
   </td>
   
   <td><input type='checkbox' name='produtoid[]' value='3' onclick='mostra('valor3')'/>pirulito<br>
       <div id='valor3' name='valor3' style='display:none'><input type='text' name='valor3'></div>
   </td>
   
   <td><input type='checkbox' name='produtoid[]' value='4' onclick='mostra('valor4')'/>chiclete<br>
       <div id='valor4' name='valor4' style='display:none'><input type='text' name='valor4'></div>
   </td>
   
   <td><input type='checkbox' name='produtoid[]' value='5' onclick='mostra('valor5')'/>goma<br>
       <div id='valor5' name='valor5' style='display:none'><input type='text' name='valor5'></div>
   </td>        
  <tr>
    <td colspan="10" align="center" valign="middle"><input type="button" value="Pesquizar" onclick="verifica_quantidade_produto('valor1')" /></td>
  </tr>
</table>
</form>

Link para o comentário
Compartilhar em outros sites

  • 0

Não não.

Não posso fazer isso pois o interpretador echp do php barra.

Dai, fechei e abri a tag php e puz o htlm no meio e resoloveu parte do problema.

Agora, a situaçao é outra.

Tenho outra js que verifica se o campo esta ou não vazio, porem só funciona no primeiro campo.

<form name="verpreco" method="post" action="?acao=verpreco">
<table width="500" border="1" align="center">
  <tr>
    <td colspan="10" align="center" valign="middle">Pesquisa de pre&ccedil;os de fornecedores:</td>
  </tr>
  <tr><td colspan="10">Produto:</td></tr>
    <?
    $i=1;
    while (list($id, $nome) = mysql_fetch_row($produtos))
    {
/*            echo "<td><input type='checkbox' name='produtoid[]' value='$id' onclick='mostra('valor$id')'/>$nome<br>";
            echo "<div id='valor$id' name='valor$id' style='display:none'><input type='text' name='valor$id'></div>";
            echo "</td>";
*/
?>
      <td width="48" valign="top">
        <input type="checkbox" name="produtoid[]" value="<?=$id;?>" onclick="mostra('valor<?=$id;?>')"/><?=$nome;?><br>
        <div id="valor<?=$id;?>" name="valor<?=$id;?>" style="display:none"><input type="text" size="10" name="valor<?=$id;?>"></div>
      </td>

<?

            if( $i%10==0 ) {echo '</tr><tr>';}
    
            $i++;
    }

    ?>    
    
  <tr>
    <td colspan="10" align="center" valign="middle"><input type="button" value="Pesquizar" onclick="verifica_quantidade_produto('valor1')" /></td>
  </tr>
</table>
</form>
verifica_quantidade_produto.js
// JavaScript Document
function verifica_quantidade_produto(div)
{
   if ((document.getElementById(div).style.display == "block") && (document.verpreco.elements[div].value == ""))
      {
          alert ('Campo tem que ser preenchido + Chr(13) + Caso contrário, desmarque o produto!');
          document.verpreco.elements[div].focus();
      }
}
abre_fecha.js
function mostra(div)
{
if (document.getElementById(div).style.display != "none")
{
document.getElementById(div).style.display = "none";
}
else
{
document.getElementById(div).style.display = "block";
}
}

Como corrige isso?

Link para o comentário
Compartilhar em outros sites

  • 0

Bom pessoal

tenho o códigpo abaxo em que a variavel DIV recebe o valor de "valor1;valor2;valor3;valor4;valor5";

// JavaScript Document
function verifica_quantidade_produto(div)
{
    var div_produtos, string_array;
    var array_produtos = new Object();
    string_array = div;
    array_produtos = string_array.split(";");
    //varre o array só pra mostrar que tá tudo ok
    alert( div);
    alert( string_array);        
    alert( array_produtos);    
    
    for (div_produtos in array_produtos)
      {
          alert(div_produtos);
          
         if ((document.getElementById(div_produtos).style.display == "block") && (document.verpreco.elements[div_produtos].value == ""))
            {
                alert ('Campo tem que ser preenchido + Chr(13) + Caso contrário, desmarque o produto!');
                document.verpreco.elements[div_produtos].focus();
            }
       }
}
O que eu preciso fazer. Criar uma array com esse valor de DIV e para cada um indice desse array, eu criar esse código.
if ((document.getElementById(div_produtos).style.display == "block") && (document.verpreco.elements[div_produtos].value == ""))
            {
                alert ('Campo tem que ser preenchido + Chr(13) + Caso contrário, desmarque o produto!');
                document.verpreco.elements[div_produtos].focus();
            }

Onde estou errando?

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...