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

[Duvida][Resolvido]Campos desabilitados e condições de preenchimento


Arthur_Arruda

Pergunta

Bom dia pessoal do ScriptBrasil esse é meu primeiro post de muitos e espero conseguir resolver o meu problema! :lol:

Ok , vamos ao problema! B)

Estou criando um página que tem um RadioGroup que dependendo do que o usuário seleciona, alguns campos são desabilitados e habilitados. Eu acabei tendo que criar uma função e javascript que faz isso por mim. a função é a seguinte :

function HabDesabCxTexto(opcao){   //Início da função de desabilitaão de código
if(opcao.value==1){
document.form1.cod_alugado.disabled=false;         //tem brema aqui
document.form1.cod_alugado.focus();
document.form1.cod_patrimonio.disabled=true;
<?php $sit="Patrimonio"; ?>
}
else if (opcao.value==2){
document.form1.cod_patrimonio.disabled=false;
document.form1.cod_patrimonio.focus();
document.form1.cod_alugado.disabled=true;
<?php $sit="Alugado"; ?>
}
} // Fim da função de dasbilitação de código
Como podem ver , eu coloquei uma exceção que caso o usuário marque o Radio de Valor "1" a variável "$sit" recebe o String Patrimonio e caso marque o Radio de valor "2" recebe o String "Alugado". O que estou tentando fazer é: caso a variável $sit seja igual a "Patrimonio" os valores que o usuário digitou nos outros campos sejam direcionados a uma generalização chamada "Patrimonio" , e , caso ela seja igual a "Alugado" os valores dos campos sejam direcionados a uma outra generalização chamada "Alugado" Eis o que fiz:
<?php

    require("cadastro_notebooks.php");
    $cod_n=$_POST['cod_notebook'];
    $situacao=$sit;
    $cod_b=$_POST['cod_bateria'];
    $hd=$_POST['espec_hd'];
    $dvd=$_POST['espec_dvd'];
    $memoria=$_POST['espec_memoria'];
    $cod_p=$_POST['cod_patrimonio'];
    $cod_a=$_POST['cod_alugado'];
    $cod_f=$_POST['cod_fonte'];
    mysql_connect("localhost", "root") or die(mysql_error()); 
 mysql_select_db("aluguel") or die(mysql_error()); 
 mysql_query("INSERT INTO notebook (cod_notebook,
                                      situacao)                                    
                             VALUES ('$cod_n',
                                      '$situacao')");
                                     
 if ($situacao=="Alugado"){
 mysql_query("INSERT INTO alugado  (cod_alugado,
                                     FKcod_notebook,
                                    cod_bateria,
                                    espec_hd,
                                    espec_memoria,
                                    espec_fonte,
                                    espec_dvd)
                                    
                          VALUES ('$cod_a',
                                  '$cod_n',
                                  '$cod_b',
                                  '$hd',
                                  '$memoria',
                                  '$dvd')");
 }else if ($situacao=="Patrimonio"){
 mysql_query("INSERT INTO patrimonio  (cod_patrimonio,
                                     FKcod_notebook,
                                    cod_bateria,
                                    espec_hd,
                                    espec_memoria,
                                    espec_fonte,
                                    espec_dvd)
                                    
                          VALUES ('$cod_p',
                                  '$cod_n',
                                  '$cod_b',
                                  '$hd',
                                  '$memoria',
                                  '$dvd')");
 }

 echo "Dados cadastrados com sucesso."; 
 ?>
Só que está tendo um grande porém , quando o usuário seleciona o Radio de valor "2" ou "1" , no banco , ambos são registrados na tabela "mãe" como alugados e nas tabelas "filhas" os valores não são registrados. Alguém pode me ajudar com esse erro? Vou disponibilizar umas SC's para melhor compreensão do problema. Sc 1:http://postimage.org/image/y0lrgqxvn Sc 2:http://postimage.org/image/9zsf5enen Sc 3: http://postimage.org/image/xgrq0t951 Sc4: http://postimage.org/image/m6phzsytz Sc5: http://postimage.org/image/nftwykgsj Não consegui achar um domínio para postar essas imagens em .gif . (Se puderem me indicar um eu agradeceria) Dados extras que considero irrelevantes : Estou usando o dreamweaver para programação. (Se puderem me indicar outro interpretador de php eu ficaria agradecido) Estou usando o mysql Front. Estou usado o wampSerer para testar as páginas. Script da página toda:
<?
 ?> 
<!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">
<!-- DW6 -->
<head>
<!-- Copyright 2005 Macromedia, Inc. All rights reserved. -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link rel="stylesheet" href="emx_nav_left.css" type="text/css" />
&lt;script type="text/javascript">
<!--
var time = 3000;
var numofitems = 7;


function HabDesabCxTexto(opcao){   //Início da função de desabilitaão de código
if(opcao.value==1){
document.form1.cod_alugado.disabled=false;         //tem brema aqui
document.form1.cod_alugado.focus();
document.form1.cod_patrimonio.disabled=true;
<?php $sit="Patrimonio"; ?>
}
else if (opcao.value==2){
document.form1.cod_patrimonio.disabled=false;
document.form1.cod_patrimonio.focus();
document.form1.cod_alugado.disabled=true;
<?php $sit="Alugado"; ?>
}
} // Fim da função de dasbilitação de código

function verificar(){ //verificar se todos os campos foram prenchidos
 if  ((document.form1.cod_notebook.value.length==0) ||
    (document.form1.espec_hd.value.length==0) ||
    (document.form1.espec_memoria.value.length==0) ||
    (document.form1.espec_dvd.value.length==0) ||
    (document.form1.cod_bateria.value.length==0) ||
    (document.form1.cod_fonte.value.length==0) ||
    (document.form1.descricao.value.length==0)){
    alert("Preencha todo os campos");
    }else{
      alert("Dados cadastrados com sucesso");
      }
     } //fim da função verificar





//menu constructor
function menu(allitems,thisitem,startstate){ 
  callname= "gl"+thisitem;
  divname="subglobal"+thisitem;  
  this.numberofmenuitems = allitems;
  this.caller = document.getElementById(callname);
  this.thediv = document.getElementById(divname);
  this.thediv.style.visibility = startstate;
}

//menu methods
function ehandler(event,theobj){
  for (var i=1; i<= theobj.numberofmenuitems; i++){
    var shutdiv =eval( "menuitem"+i+".thediv");
    shutdiv.style.visibility="hidden";
  }
  theobj.thediv.style.visibility="visible";
}
                
function closesubnav(event){
  if ((event.clientY <48)||(event.clientY > 107)){
    for (var i=1; i<= numofitems; i++){
      var shutdiv =eval('menuitem'+i+'.thediv');
      shutdiv.style.visibility='hidden';
    }
  }
}
// -->
</script>
<style type="text/css">
<!--
.style1 {font-size: medium}
-->
</style>
</head>
<body onmousemove="closesubnav(event);">
<div class="skipLinks">skip to: <a href="#content">page content</a> | <a href="#pageNav">links on this page</a> | <a href="#globalNav">site navigation</a> | <a href="#siteInfo">footer (site information)</a> </div>
<div id="masthead">
  <h1 id="siteName">
    <center>
      Sistema interno de notebook
    </center>
  </h1>
  <div id="globalNav"> <img alt="1" src="gblnav_left.gif" height="32" width="4" id="gnl" /> <img alt="2" src="glbnav_right.gif" height="32" width="4" id="gnr" />
      <div id="globalLink"> <a href="#" id="gl1" class="glink" onmouseover="ehandler(event,menuitem1);">Cadastrar</a><a href="#" id="gl2" class="glink" onmouseover="ehandler(event,menuitem2);">Consultar</a><a href="#" id="gl3" class="glink" onmouseover="ehandler(event,menuitem3);">Devolução</a><a href="#" id="gl4" class="glink" onmouseover="ehandler(event,menuitem4);">Relatório</a></div>
    <!--end globalLinks-->
  </div>
  <!-- end globalNav -->
  <div id="subglobal1" class="subglobalNav"> <a href="#">Notenook</a> | <a href="#">Funcionários</a> | <a href="#">Pedidos</a> </div>
  <div id="subglobal2" class="subglobalNav"> <a href="#">Notebook</a> | <a href="#">Funcionários</a> | <a href="#">Pedidos</a> | <a href="#">Devolução</a> </div>
  <div id="subglobal3" class="subglobalNav"> <a href="#">Patrimonio</a> | <a href="#">Alugado</a> </div>
  <div id="subglobal4" class="subglobalNav"> <a href="#">subglobal4 link</a> | <a href="#">subglobal4 link</a> | <a href="#">subglobal4 link</a> | <a href="#">subglobal4 link</a> | <a href="#">subglobal4 link</a> | <a href="#">subglobal4 link</a> | <a href="#">subglobal4 link</a> </div>
  <div id="subglobal5" class="subglobalNav"> <a href="#">subglobal5 link</a> | <a href="#">subglobal5 link</a> | <a href="#">subglobal5 link</a> | <a href="#">subglobal5 link</a> | <a href="#">subglobal5 link</a> | <a href="#">subglobal5 link</a> | <a href="#">subglobal5 link</a> </div>
  <div id="subglobal6" class="subglobalNav"> <a href="#">subglobal6 link</a> | <a href="#">subglobal6 link</a> | <a href="#">subglobal6 link</a> | <a href="#">subglobal6 link</a> | <a href="#">subglobal6 link</a> | <a href="#">subglobal6 link</a> | <a href="#">subglobal6 link</a> </div>
  <div id="subglobal7" class="subglobalNav"> <a href="#">subglobal7 link</a> | <a href="#">subglobal7 link</a> | <a href="#">subglobal7 link</a> | <a href="#">subglobal7 link</a> | <a href="#">subglobal7 link</a> | <a href="#">subglobal7 link</a> | <a href="#">subglobal7 link</a> </div>
  <div id="subglobal8" class="subglobalNav"> <a href="#">subglobal8 link</a> | <a href="#">subglobal8 link</a> | <a href="#">subglobal8 link</a> | <a href="#">subglobal8 link</a> | <a href="#">subglobal8 link</a> | <a href="#">subglobal8 link</a> | <a href="#">subglobal8 link</a> </div>
</div>
<!-- end masthead -->
<div id="pagecell1">
  <!--pagecell1-->
  <img alt="" src="tl_curve_white.gif" height="6" width="6" id="tl" /> <img alt="" src="tr_curve_white.gif" height="6" width="6" id="tr" />
  <div id="pageName">
    <h2>Cadastro de Notebooks </h2>
  </div>
  <div id="siteInfo">
    <form  name="form1" method="post" action="insercao.php" onsubmit="verificar();">
      <table width="954" border="0">
        <tr>
          <td width="126" height="44"><label>Código do Notebook:</label></td>
          <td colspan="2"><input name="cod_notebook" type="text" id="cod_notebook" size="40" /></td>
          <td width="153"><label>Especificações do HD :</label></td>
          <td width="247"><input name="espec_hd" type="text" id="espec_hd" size="40" /></td>
        </tr>
        <tr>
          <td height="46"><label>Situação do Notebook:</label></td>
          <td width="402"><p>
              <label>
              <input type="radio" name="RadioGroup1" value="1" cheked onClick='HabDesabCxTexto(this);'/>
              Alugado
              </label>
              <label>
              <input type="radio" name="RadioGroup1" value="2" onClick='HabDesabCxTexto(this);' />
              Patrimonio
              </label>
              <br />
              <label></label>
            </p>
            <label></label>
          <label></label></td>
          <td width="4"> </td>
          <td><label>Especificações da memória:</label></td>
          <td><input name="espec_memoria" type="text" id="espec_memoria" size="40" /></td>
        </tr>
        <tr>
          <td><label>Código de Patrimonio:</label></td>
          <td colspan="2"><input name="cod_patrimonio" type="text" id="cod_patrimonio" size="40" /></td>
          <td><label>Especificaçõs do DVD:</label></td>
          <td><input name="espec_dvd" type="text" id="espec_dvd" size="40" /></td>
        </tr>
        <tr>
          <td><label>Código de Alugado:</label></td>
          <td colspan="2"><input name="cod_alugado" type="text" id="cod_alugado" size="40"  /></td>
          <td><label>Código da Bateria:</label></td>
          <td><input name="cod_bateria" type="text" id="cod_bateria" size="40" /></td>
        </tr>
        <tr>
          <td height="31"><label>Descrições Extras:</label></td>
          <td colspan="2"> </td>
          <td><label>Código da Fonte:</label></td>
          <td><input name="cod_fonte" type="text" id="cod_fonte" size="40" /></td>
        </tr>
        <tr>
          <td height="80" colspan="5"><textarea name="desc" cols="70" rows="3" id="desc"></textarea></td>
        </tr>
      </table>
      <p>
        <label>
        <input name="cadastrar" type="submit" id="cadastrar" value="Cadastrar" />
        </label>
        <label>
        <input name="Limpar" type="reset" id="Limpar" value="Limpar" />
        </label>
        <label>
        <input name="retornar" type="button" id="retornar" value="Retornar a página princpal"  onclick="location.href='../Página Principal/Página principal.html'"/>
        </label>
      </p>
    </form>
  </div>
</div>
<!--end pagecell1-->
<br />
&lt;script type="text/javascript">
    <!--
      var menuitem1 = new menu(7,1,"hidden");
            var menuitem2 = new menu(7,2,"hidden");
            var menuitem3 = new menu(7,3,"hidden");
            var menuitem4 = new menu(7,4,"hidden");
            var menuitem5 = new menu(7,5,"hidden");
            var menuitem6 = new menu(7,6,"hidden");
            var menuitem7 = new menu(7,7,"hidden");
    // -->
    </script>
</body>
</html>

Espero ajuda pessoal , desde já agradeço.

Editado por Arthur_Arruda
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Manolo que bagunça!

<?php

    require("cadastro_notebooks.php");
    $cod_n=$_POST['cod_notebook'];
    $situacao=$sit;
$situacao = $sit? Essa variável $sit não foi definida ainda.
function HabDesabCxTexto(opcao){   //Início da função de desabilitaão de código
if(opcao.value==1){
document.form1.cod_alugado.disabled=false;         //tem brema aqui
document.form1.cod_alugado.focus();
document.form1.cod_patrimonio.disabled=true;
<?php $sit="Patrimonio"; ?>
}

Você sabe que esse código PHP vai ser executado quando a página carregar, e não quando a função HabDesabCxTexto for executada, ceeeerto?

Link para o comentário
Compartilhar em outros sites

  • 0
Manolo que bagunça!

<?php

    require("cadastro_notebooks.php");
    $cod_n=$_POST['cod_notebook'];
    $situacao=$sit;
$situacao = $sit? Essa variável $sit não foi definida ainda.
function HabDesabCxTexto(opcao){   //Início da função de desabilitaão de código
if(opcao.value==1){
document.form1.cod_alugado.disabled=false;         //tem brema aqui
document.form1.cod_alugado.focus();
document.form1.cod_patrimonio.disabled=true;
<?php $sit="Patrimonio"; ?>
}

Você sabe que esse código PHP vai ser executado quando a página carregar, e não quando a função HabDesabCxTexto for executada, ceeeerto?

fiote , me perdoe a bagunça eu estou começando PHP agora e decantação de códigos nunca foi meu forte.

Na minha mente essa variável $sit era usada antes desse valor ser inserido no código da inserção. O que eu posso fazer para resolver esse problema?

Link para o comentário
Compartilhar em outros sites

  • 0

O que você pode fazer é o seguinte

Retire esse código php dentro do javascript

e para diferenciar em qual tabela você vai gravar se é alugado ou patrimonio você faz um if usando o valor das radio

$situacao= $_POST['RadioGroup1'];
seu if
if ($situacao == "2"){
mysql_query("INSERT INTO alugado  (cod_alugado,
                                    FKcod_notebook,
                                    cod_bateria,
                                    espec_hd,
                                    espec_memoria,
                                    espec_fonte,
                                    espec_dvd)
.................
else if ($situacao == "1"){
mysql_query("INSERT INTO patrimonio  (cod_patrimonio,
                                    FKcod_notebook,
                                    cod_bateria,
                                    espec_hd,
                                    espec_memoria,
                                    espec_fonte,
                                    espec_dvd)
...................

já deve resolver ou pelo menos te dar uma luz.

Link para o comentário
Compartilhar em outros sites

  • 0
O que você pode fazer é o seguinte

Retire esse código php dentro do javascript

e para diferenciar em qual tabela você vai gravar se é alugado ou patrimonio você faz um if usando o valor das radio

$situacao= $_POST['RadioGroup1'];
seu if
if ($situacao == "2"){
mysql_query("INSERT INTO alugado  (cod_alugado,
                                    FKcod_notebook,
                                    cod_bateria,
                                    espec_hd,
                                    espec_memoria,
                                    espec_fonte,
                                    espec_dvd)
.................
else if ($situacao == "1"){
mysql_query("INSERT INTO patrimonio  (cod_patrimonio,
                                    FKcod_notebook,
                                    cod_bateria,
                                    espec_hd,
                                    espec_memoria,
                                    espec_fonte,
                                    espec_dvd)
...................
já deve resolver ou pelo menos te dar uma luz.
Cara , obrigado! Resolveu o problema da tabela "mãe" porém , as tabelas "filhas" ainda não estão recebendo os valores dos inserts. Eis o que fiz agora:
<?php

    require("cadastro_notebooks.php");
    $cod_n=$_POST['cod_notebook'];
    $cod_geral=$_POST['cod_geral'];
    $valor_radio=$_POST['RadioGroup1'];
    $cod_b=$_POST['cod_bateria'];
    $hd=$_POST['espec_hd'];
    $dvd=$_POST['espec_dvd'];
    $memoria=$_POST['espec_memoria'];
    $cod_p=$cod_geral;
    $cod_a=$cod_geral;
    $cod_f=$_POST['cod_fonte'];
    mysql_connect("localhost", "root") or die(mysql_error()); 
    mysql_select_db("aluguel") or die(mysql_error()); 

  if ($valor_radio=="1"){
 $sit="alugado";
  }else if($valor_radio=="2"){
  $sit="patrimonio";
  }
  
  
 mysql_query("INSERT INTO notebook (cod_notebook,
                                      situacao)                                    
                             VALUES ('$cod_n',
                                      '$sit')");
                                     

  
  
  
 if ($sit=="alugado"){ 
 mysql_query("INSERT INTO alugado  (cod_alugado,
                                     FKcod_notebook,
                                    cod_bateria,
                                    espec_hd,
                                    espec_memoria,
                                    espec_fonte,
                                    espec_dvd)
                                    
                          VALUES ('$cod_a',
                                  '$cod_n',
                                  '$cod_b',
                                  '$hd',
                                  '$memoria',
                                  '$dvd')");
 }else if ($sit=="patrimonio"){
 mysql_query("INSERT INTO patrimonio (cod_patrimonio,
                                     FKcod_notebook,
                                    cod_bateria,
                                    espec_hd,
                                    espec_memoria,
                                    espec_fonte,
                                    espec_dvd)
                                    
                          VALUES ('$cod_p',
                                  '$cod_n',
                                  '$cod_b',
                                  '$hd',
                                  '$memoria',
                                  '$dvd')");
 }

 echo "Dados cadastrados com sucesso."; 
 ?>

Also : Ele está "ecoando" "Dados cadastrados com sucesso" quando ele carrega a página até na primeira vez , sabe o que pode ser?

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, se não insere então deve tá com erro na query.

Teste com isso or die(mysql_error()) e veja se retorna algum erro

if ($sit=="alugado"){
mysql_query("INSERT INTO alugado  (cod_alugado,
                                    FKcod_notebook,
                                    cod_bateria,
                                    espec_hd,
                                    espec_memoria,
                                    espec_fonte,
                                    espec_dvd)
                                    
                          VALUES ('$cod_a',
                                  '$cod_n',
                                  '$cod_b',
                                  '$hd',
                                  '$memoria',
                                  '$dvd')") or die(mysql_error());
}else if ($sit=="patrimonio"){
mysql_query("INSERT INTO patrimonio (cod_patrimonio,
                                    FKcod_notebook,
                                    cod_bateria,
                                    espec_hd,
                                    espec_memoria,
                                    espec_fonte,
                                    espec_dvd)
                                    
                          VALUES ('$cod_p',
                                  '$cod_n',
                                  '$cod_b',
                                  '$hd',
                                  '$memoria',
                                  '$dvd')") or die(mysql_error());
}

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,8k
×
×
  • Criar Novo...