Jump to content
gabrielfalieri

erro ao preencher select option com select em ajax

Recommended Posts

Boa tarde galera do imasters.
Eu estou fazendo um select onde preciso preencher um select option com o retorno de um select dinâmico, gerado por ajax.
 

 

ajax/javascript

$("#txtCodigoAtivacao").on('change',function(){
        var codAtivacao = document.getElementById("txtCodigoAtivacao").value;
        var result = document.getElementById("cmbDataTreinamento");
        var XMLHttp = new XMLHttpRequest();
        XMLHttp.open("get", "classes/Crud.php?codAtivacao=" + codAtivacao, true);
        XMLHttp.onreadystatechange = function () {

            if (XMLHttp.readyState == 4)
                if (XMLHttp.status == 200) {
                    result.innerHTML = XMLHttp.responseText;

                } else {
                    result.innerHTML = "Um erro ocorreu: " + XMLHttp.statusText;
                }
        };
        XMLHttp.send(null);
    });

Esse trecho de código, consegue enviar a requisição certinha, e ele retorna para mim o dado que eu quero, só que o preenchimento fica errado.
 

as divs com o select

<div class="form-group has-feedback" id="divDataTreinamento">
                                                <label class="control-label">Data do treinamento:
                                                    <span class="required"> * </span>
                                                </label>
                                                <select class="form-control" name="cmbDataTreinamento" id="cmbDataTreinamento">
                                                    <option>Selecione a data do treinamento</option>
                                                    <?php foreach($Treinamento->getDates() as $key => $values):?>
                                                        <option value="<?php echo $values->id_trein_turmas ?> ">
                                                            <?php
                                                            echo date("d/m/Y",strtotime($values->data_inicio));
                                                            ?> a
                                                            <?php
                                                            echo date("d/m/Y",strtotime($values->data_fim));
                                                            ?> em
                                                            <?php
                                                            echo $values->local
                                                            ?> -
                                                            <?php
                                                            echo $values->assunto;
                                                            echo " ";
                                                            echo utf8_encode( $values->tipo);
                                                            echo " ";
                                                            echo $values->forma;
                                                            echo " ";
                                                            ?>(<?php echo $values->qtd_horas; ?>)
                                                            -
                                                            <?php
                                                            $qtd_vagas = $values->qtd_vagas;
                                                            if($values->qtd_vagas >= 1){
                                                                echo 'Vagas disponíveis';
                                                            }
                                                            else if($values->qtd_vagas_reserva >= 1 && $values->qtd_vagas < 1 ){
                                                                echo 'Fila de espera';
                                                            }else{
                                                                echo 'Esgotado';
                                                            }
                                                            ?>
                                                        </option>
                                                    <?php endforeach; ?>
                                                </select>
                                                <span class="msgDataTreinamento help-block"></span>
                                            </div>

Quando eu coloco um id no value do select do php, ele fica vazio um campo e o outro retorna o valor que eu preciso, quando eu deixo o id no select, ele fica vazio.
(imagens anexadas)


Php do código

 public $codigoAtivacao;

    abstract public function insert();

    public function getDates(){
        try{

            if(empty($codigoAtivacao)){
                $sql = "SELECT id_trein_turmas, data_inicio,data_fim,local,assunto,qtd_horas,tipo,forma,qtd_vagas,qtd_vagas_reserva FROM trein_turmas WHERE data_inicio > current_timestamp()  ;";
                $stmt = DB::prepare($sql);
                $stmt->execute();
                return $stmt->fetchAll();
            }else{
                $sql = "SELECT id_trein_turmas, data_inicio,data_fim,local,assunto,qtd_horas,tipo,forma,qtd_vagas,qtd_vagas_reserva FROM trein_turmas WHERE data_inicio > current_timestamp() AND _cod_promocional = '".$codigoAtivacao."';";
                $stmt = DB::prepare($sql);
                $stmt->execute();
                return $stmt->fetch();
            }

        }catch (PDOException $ex){
            $ex->getMessage();
        }
    }

 

 

a.png

a.png

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 Rafaelax
      Oi queridos,
      Não sou programadora e nem entusiasta de programação, apenas altero algumas coisas no meu programa que tenho de cadastro de clientes. Coisas básicas vamos dizer;
      Para facilitar tudo, quando o programa foi criado, foi feito um campo de data automático no banco de dados como abaixo.
      `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
       
      Funciona bem para o que preciso, mas ele traz a data nesse formato: 2020-03-25 00:20:03
      Data no formato ano/mês/dia e eu queria no formato tradicional dia/mês/ano.
      Só para levar em conta. eu trago a data para visualizar em um campo normal de inpunt com o value="[date]"
      Esse acima é um dos problemas que quero resolver com a parte da data.
       
      Já a segunda questão é justamente envolvendo essa data automática, pois qualquer edição que faço ele atualiza a data e o horário. Perfeito. Mas perco a data de cadastro original do cliente. É possível eu ter um outro campo de data automático mas que apenas grave o cadastro e não  atualize automaticamente nas edições?
       
      Eu queria que uma data fosse do cadastro e não atualizasse e outra data continuasse como está, apenas fazendo a inversão.
      Não adianta eu colocar a data manual no cadastro, pois pessoas colocam datas diferentes das do dia do cadastro.
       
    • By Alberto Nascimento
      i("resultado").innerHTML = ((((parseFloat(c1) * parseFloat(c2)) + ... Quando migrei para o servidor 7.2 parou de funcionar
    • By Alberto Nascimento
      i("calcula").onclick = function(){ Este comando depois que eu atualizei meu servidor para PHP 7.2 não quer mais funcionar.
    • By adriano.eurich
      Tem como recuperar os dados do banco que foram incluídos através do create, e retornar para a mesmo formulário?
      Quando eu inserir o numero da chave e clicar em pesquisar ele traz o resultado do banco referente aquela chave se ela estiver com a situação 1 que é emprestado ai habilitaria os botões editar e deletar, onde o deletar apenas alterava o situação de 1 para 2 .
      Não consigo fazer essa parte de busca no banco e retornar no mesmo formulário, se é que é possível!
       
      cadastro.php
       
      <?php session_start(); include_once 'includes/header.inc.php'; include_once 'includes/menu.inc.php'; ?> <!-- Formulário de Cadastro Cliente --> <div class="row container"> <form action="banco_de_dados/create.php" method="post" class="col s12"> <fieldset class="formulario" style="padding: 1px;"> <legend><!--<img src="imagens/CadCli.png" alt="[imagem]" style="width:40x; height:40px">--></legend> <br> <?php if (isset($_SESSION['msg'])): echo $_SESSION['msg']; session_unset(); endif; ?> <!-- Campo Chave --> <div class="input-field col s12"> <i class="material-icons prefix">vpn_key</i> <input type="text" name="chave" id="chave" maxlength="4" required> <label for="chave">Chave</label> </div> <!-- Campo Nome --> <div class="input-field col s12"> <i class="material-icons prefix">account_circle</i> <input type="text" name="nome" id="nome" maxlength="40" required autofocus> <label for="nome">Nome</label> </div> <!-- Campo Instituição --> <div class="input-field col s12"> <i class="material-icons prefix">account_balance</i> <input type="text" name="inst" id="inst" maxlength="40" required autofocus> <label for="inst">Instituição</label> </div> <!-- Campo Telefone --> <div class="input-field col s12"> <i class="material-icons prefix">phone</i> <input type="text" name="telefone" id="telefone" maxlength="13" required> <label for="telefone">Telefone</label> </div> <!-- Botões --> <div class="input-field col s12"> <input type="submit"style="width:108px; height:35px" value="cadastrar" class="btn green"> <input type="submit"style="width:108px; height:35px" value="Pesquisar" class="btn blue"> <input type="submit"style="width:108px; height:35px" value="Editar" class="btn orange"> <input type="submit"style="width:108px; height:35px" value="Devolver" class="btn red"> </div> </fieldset> </form> </div> <?php include_once 'includes/footer.inc.php'; ?> <?php include_once 'includes/script.inc.php'; ?>  
      create.php
       
      <?php session_start(); include_once 'conexao.php'; $id = $_POST ['id']; $nome = $_POST ['nome']; $inst = $_POST ['inst']; $data = date('y-m-d'); $telefone = $_POST ['telefone']; $chave = $_POST ['chave']; $situacao = $_POST ['situacao']; $queryInsert = $link->query("insert into tb_cadastro VALUES ('" . $id . "', '" . $nome . "','" . $inst . "','" . $data . "','" . $telefone . "','" . $chave . "','1')"); $affected_rows = mysqli_affected_rows($link); if ($affected_rows > 0): $_SESSION['msg'] = "<p class='center green-text'>" . 'Cadastrado com Sucesso!' . "<br>"; header("Location: ../cadastro.php"); endif;  
       
       
       
       

    • By juliosertori
      Olá boa tarde, tudo bem?
       
      Tenho uma consulta de CEP via AJAX, na qual ele seleciona a cidade no SELECT cidades:
       
      $("#cidade").val(dados.localidade);
       
      O problema é que tem que estar exatamente igual nos 2 lados, na consulta e no select.
       
      Como fazer para não diferenciar minúsculas e maiúsculas, e caracteres especiais?
       
      Obrigado!
×

Important Information

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