Jump to content
Richard.Ribeiro

Não alterar o select uma vez já selecionado

Recommended Posts

Fala Pessoal.. Bom dia.. uma ajuda por favor.

não sei se e a melhor opção mais, gostaria de criar um id sequencial id="material"

para resolver seguinte problema.. com javascript eu crio select com dados selecionados anteriormente, e crio mais opção no caso de haver mais pedido, porém toda vez que preciso troca a categoria o PRIMEIRO selecte que já possui um item e resetado. como posso resolver isso O PRIMIEIRO SELECT NÃO MUDAR. uma vez que á possui value selected

 

segue todo código:


  <div id="box" >

  <form id="cadastro"  method="post">
    <?php

      if(isset($_POST['acao'])){
        $ide = $_POST['ide'];
        $data = $_POST['data_pedido'];
        $username=$_SESSION['username'];
        $justificativa = $_POST['justificativa'];
        $id_tipo_material = $_POST['material'];
        $qnt_solicitada = $_POST['qnt_solicitada'];


        //cadastrar no banco de dados!
            $gravar = new Painel();

            $id_gsm = $gravar->cadastrarGsm($data,$username,$justificativa,$ide);
            $gravar->cadastrarItem($id_gsm,$id_tipo_material,$qnt_solicitada);
            Painel::alert('sucesso','Pedido realizado com sucesso!');

            }
            $ConsultaIde = ConexaoBD::conectar()->prepare("SELECT  vsat_gilat, 'IDE: '||vsat_gilat|| ', Situação:'|| situacao|| ', Localidade:'||localidade|| ', Logradouro: '||logradouro as local
  FROM vsat WHERE vsat_gilat != '' AND situacao = 'Ativo'");
            $ConsultaIde->execute();
            $ConsultaIde = $ConsultaIde->fetchAll();

  ?>
  <div >
  <div class="form-group">

        <label>Selecione uma IDE</label>
        <select class="ide" name="ide" id="ide" required>
          <option disabled selected>-- Selecione IDE --  </option>
            <?php
            foreach ($ConsultaIde as $key => $value) {
              ?>
              <option value="<?php echo $value['vsat_gilat'];?>">
                <?php echo $value['local'];?>


          </option>
        <?php }?>
        </select>


        <label>Data da Solicitação do Material :</label>
        <input type="text"value="<?php   echo date('d/m/Y');    ?>"  name="data_pedido" readonly >
  </div><!--form-group-->
      <div class="form-group">
        <label>Justificativa do pedido:</label>
        <textarea  rows="8" cols="80" name="justificativa" required></textarea>
  </div><!--form-group-->


  <div class="form-group">
        <label>Selecione Sistema:</label>
        <select name="id_categoria" id="id_categoria">
        <option selected disabled> --- Selecione o Sistema ---</option>
      <?php
  $consulta= ConexaoBD::conectar()->prepare("SELECT id_sistema, descricaos FROM public.cadastrar_sistema");
  $consulta->execute();
  while($row_cat_post = $consulta->fetch(PDO::FETCH_ASSOC) ) {
  echo '<option value="'.$row_cat_post['id_sistema'].'">'.$row_cat_post['descricaos'].'</option>';
        }
  ?>
    </select>
  </div><!--form-group-->

  <div class="form-group">
    <label>Selecione Padrão:</label>
    <span class="carregando">Aguarde, carregando...</span>
    <select name="id_sub_categoria" id="id_sub_categoria" >
      <option value="">--- Selecione o Padrão ---</option>

    </select>
  </div><!--form-group-select-->


  </div>
  <div class="pedido">
    <div class="remover">
    <label>Selecione Material:</label>
    <span class="carregando">Aguarde, carregando...</span>
    <select name="material[]" id="material">
      <option value="">--- Selecionte o Material ---</option>
    </select>
    <input type="text" id="quantidade" name="qnt_solicitada[]" placeholder="Digite a Quantidade" >
<button type="button" name="button" class="removedor">Remover Item</button>
</div>
</div>

</div>
  <button type="button" name="button" class="clonador">Novo Item</button>

  <input type="submit" name="acao" value="Cadastrar!">
  </form>

 

 

 

 

 

 

 

  <script type="text/javascript" src="https://www.google.com/jsapi"></script>
          <script type="text/javascript">
            google.load("jquery", "1.4.2");
          </script>

<script  src="<?php echo INCLUDE_PATH_PAINEL ?>js/jquery-3.4.1.min.js"></script>
<script type="text/javascript">

  $(function(){
    $('#id_categoria').change(function(){

      if( $(this).val() ) {
        $('#id_sub_categoria').hide();
        $('.carregando').show();

        $.get('sub_categorias_post?search=',{id_categoria: $(this).val(), ajax: 'true'}, function(j){
          html = $.parseHTML(j);
          j=JSON.parse(html[16].textContent.trim());

          var options = '<option value="">Escolha Subcategoria</option>';
          for (var i = 0; i < j.length; i++) {
            options += '<option value="' + j.id + '">' + j.nome_sub_categoria + '</option>';
          }
          $('#id_sub_categoria').html(options).show();
          $('.carregando').hide();
        });
      } else {
        $('#id_sub_categoria').html('<option value="">– Escolha Subcategoria –</option>');
      }
    });
  });

  $(function(){
    $('#id_sub_categoria').change(function(){
      if( $(this).val() ) {
        $('#material').hide();
        $('.carregando').show();
        $.get('sub_categorias_post2?search=',{id_sub_categoria: $(this).val(), ajax: 'true'}, function(j){
          html = $.parseHTML(j);
          console.log(html);
          j=JSON.parse(html[16].textContent.trim());
          var options = '<option value="">Escolha Subcategoria</option>';
          for (var i = 0; i < j.length; i++) {
            options += '<option value="' + j.id + '">' + j.nome_sub_categoria + '</option>';
          }
          $('#material').html(options).show();
          $('.carregando').hide();
        });
      } else {
        $('#id_sub_categoria2').html('<option value="">– Escolha Subcategoria –</option>');
      }
    });
  });
  </script>
  <script>
  $(document).ready(function(){

 

        $(document).on('click', '.clonador', function(e){
          var elm_html = $('.pedido').html();
          var counter = 0;  //faz uma cópia dos elementos a serem clonados.
            e.preventDefault();

            var elementos = elm_html.replace(/\[[0\]]\]/g, '['+ counter +']');  //substitui o valor dos index e incrementa++
            counter++;
            $('#cadastro').append(elementos);  //exibe o clone.
        });

    });


    $(document).on('click', '.removedor', function (event) {
      event.preventDefault();
      $(this).parents('.remover').remove(); // navega até o pai com a classe pedido e remove ele inteiro
    });
  </script>

 

  <?php
  die();
  ?>
</div><!--box-content-->

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By gersonab
      Bom dia, tenho 2 tabelas editáveis em uma div, estas funcionam normalmente, o problema é que o loop não acontece , só carrega sobre 1 item, sendo que este eu posso ter mais itens.
       na página principal tenho:
      <div class="carregadados"></div> function fetch_data() { $.ajax({ url:"../lista/finan.php", method:"POST", success:function(data){ $('.carregadados').html(data); } }); } fetch_data(); a página a ser carregada esta assim:
      <?php session_start(); require_once('config.php'); $output = ''; $idc1=$_SESSION['idc']; $sql01 = "SELECT * FROM porcent WHERE idfcli='$idc1'"; $result = mysqli_query($con, $sql01); while($user41 = mysqli_fetch_array($result)){ // primeiro while onde seleciono os itens da pessoa podendo ter vários $output .= ' <div class="table-responsive mb-4 mt-4"> Aqui vem os dados da pessoa '; $id1= $user41["idproc"]; $sqladv = "SELECT * FROM poradv WHERE procav='$id1'"; $resulta = mysqli_query($con, $sqladv); $output .= ' <table class="table table-bordered table-hover table-striped" style="width:100%"> <thead> <tr> </tr> </thead> <tbody>'; if(mysqli_num_rows($resulta) > 0) { while($usera = mysqli_fetch_array($resulta)){ //segundo while onde tenho os dados de venda em uma tabela editavel $output .= ' <tr> </tr>'; } $output .= ' <tr> // insiro linhas caso precise </tr> '; } else { $output .= '<tr> // caso não tenha nada inserido, posso fazer por aqui </tr> '; } $output .= '</tbody> </table>'; $id2= $user41["idproc"]; $sql = "SELECT * FROM parcelas WHERE procid='$id2' ORDER BY datapar, idpar ASC"; $result = mysqli_query($con, $sql); $output .= ' <table class="table table-bordered table-hover table-striped" style="width:100%"> <thead> <tr> // tabela de pagamentos editavel </tr> </thead> <tbody>'; if(mysqli_num_rows($result) > 0) { while($row = mysqli_fetch_array($result)) { //terceiro while , tabela referente a pagamentos $output .= ' <tr> // tabela pagamentos </tr>'; } $output .= ' <tr> // insiro linhas caso precise </tr> '; } else { $output .= '<tr> // caso não tenha nada inserido, posso fazer por aqui </tr> '; } $output .= '</tbody> </table> </div> '; } echo $output; ?> só esta carregando uma vez , tudo dentro da parte editável esta funcionando, porém no primeiro while só faz 1 loop, os demais estão funcionando perfeitamente.
      desde já agradeço qualquer ajuda.
    • By dmelo
      Eu tenho um script   $('.btn').click();   mas ele só funciona se eu deixar o mouse em cima do elemento.
      Como fazer pra ele funcionar ignorando a posião do mouse?
      Agradeço muito quem puder me ajudar pois já procurei em vários fóruns mas não achei a solução.
    • By mamotinho
      Olá, estou com problemas, minha data está atualizando porém eu clico em um produto ele exibe o tempo sem atualizar . quando eu mudo de produto ele mostra os dois valores exemplo
      Produto 1: tem duraçao de: 1 dia e 13:023 PM
      Produto 2: tem duraçao de: 0 dia e 23:023 PM

      Quando eu clico no produto 1 ele exibe normalmente, porém quando mudo para o produto 2 ele fica atualizando o valor do dia do produto 1 e do produto 2 sempre mudando.
      segue abaixo como está o codigo

      JavaSCRIPT
       
      function anooo(mes,dia,h,m){ var mess = mes; var dias = dia; var hss = h; var mss = m; // Set the date we're counting down to var countDownDate = new Date(""+mess+" "+dias+", 2020 "+hss+":"+mss+":00").getTime(); // Update the count down every 1 second var x = setInterval(function() { // Get today's date and time var now = new Date().getTime(); // Find the distance between now and the count down date var distance = countDownDate - now; // Time calculations for days, hours, minutes and seconds var dayss = Math.floor(distance / (1000 * 60 * 60 * 24)); var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); document.getElementById("days").innerHTML = dayss; document.getElementById("hrs").innerHTML = hours; document.getElementById("minus").innerHTML = minutes; document.getElementById("secs").innerHTML = seconds; this.remove(countDownDate); // If the count down is over, write some text if (distance < 0) { clearInterval(x); } }, 1000); } AQUI É O CHAMADO:
       
      <? if($result->Discount>=1){ $Month = date('M', strtotime($result->DateDiscount)); $Days = date('d', strtotime($result->DateDiscount)); $Hours = date('H', strtotime($result->DateDiscount)); $Minutes = date('i', strtotime($result->DateDiscount)); echo "<script>anooo('".$Month."','".$Days."','".$Hours."','".$Minutes."')</script>"; //echo "<script>alert('".$Month."')</script>"; ?> <ul class="time_sell remain_time"> <li> <dl> <dt class="blind">남은시간</dt> <dd> <span class='n_date day' id='days'></span> <span class='date'>일</span> <span class='n_time hour' id='hrs'></span> <span class='n_time minute' id='minus'></span> <span class='n_time second' id='secs'></span> <div id="countdown"></div> </dd> </dl> </li> </ul> <? } ?> eu já tentei de tudo mais sempre que mudo de produto ele exibe a data dos produtos anteriores em loop. a cada atualização do setInterval
    • By Camilavip
      Oi, como consigo fazer uma página de erro ou redirecionamento ou aviso, caso alguém clique em um cadastro que já não existe ou não tenha?
      localhost/clientes/12/ricardo No exemplo acima eu clico no cliente com esse id 12 e abre os dados dele, mas se eu o excluir mas estiver com o link e colocar no navegador, ele abre a página, sem os dados dele, mas abre. Eu queria se caso não tivesse mais o id cadastrado, abrisse algo como nenhum cadastro encontrado ou existente.
    • By WagnerFilho
      Olá,
      Eu escrevi um exemplo de trabalho de um problema real que estou tentando resolver
      Criei um objeto simulando o retorno json que recebo do banco de dados.
       
      Eu preciso:
      Listar contratos e lotes de contratos Ao entrar na função, marcar o último `lote` do `contrato` como selecionado no Dropdown List Ao entrar na função, exibir as faturas `lote` e `contrato` selecionado no elemento `ul-invoices` Carregar e exibir as respectivas `faturas` ao alterar o `lote`  
      Problemas:
      Não consigo listar as `faturas` do último `lote` do `contrato selecionado` ao carregar a função. Não consigo listar as `faturas` ao `alterar` o `lote` do `contrato`  
      Observação:
      Ao entrar na página, já tenho as informações do contrato selecionado; no caso do exemplo, deixei o contrato com o ID 1. No exemplo estou usando a classe `in-attendance` para definir o contrato selecionado Estou usando `Revealing Pattern` e quero manter este padrão  
      Tradução
      contracts = contratos batches = lotes invoices = faturas  
      Exemplo
      <html> <label id="contracts"></label> <ul id="ul-invoices"></ul> <pre></pre> <script> let lblContract = document.querySelector('#contracts'); let UlInvoices = document.querySelector('#ul-invoices'); let contractInAttendance = 1; const objectContract = { id: 1, nome: 'wagner', contracts: [{ id: 1, contract: '123456', batches: [ { id: 1, contract_id: 1, batch: '1', invoices: [ { value: 10, batch_id: 1, }] }, { id: 2, contract_id: 1, batch: '2', invoices: [{ value: 10, batch_id: 2, }] }] }, { id: 2, contract: '246789', batches: [ { id: 3, contract_id: 2, batch: '1', invoices: [ { value: 20, batch_id: 3, }] }] }] } const revelling = (function() { function privateInit() { const contracts = objectContract.contracts; let contractFilteredById = contracts.filter(contract => contract.id === contractInAttendance); for (const contract of contracts) { const selectedContract = contract.id === contractFilteredById[0].id ? 'in-attendance' : ''; let htmlForBatchsOptions = contract.batches.map(batch => `<option value=${batch.id}>${batch.batch}</option>`).join(''); lblContract.innerHTML += `<div class="contract-${selectedContract}" style="display: flex;"> <div id="contract-${contract.contract}" data-contract="${contract.id}" class="loren"> <span>${contract.contract}</span> </div> <div class="ipsulum" style="margin-left: 5px;"> <select class="sel-batch"> ${htmlForBatchsOptions} </select> </div> </div>`; const batchOption = lblContract.querySelector('select.sel-batch'); batchOption.addEventListener('change', getInvoices); //batchOption.value = 2; } } function getInvoices() { const batchValue = event.target.value console.log(batchValue); //console.log(this.value); } return { init: privateInit() } })(); revelling.init; </script> </html>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.