Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ruiva21

Modal

Recommended Posts

Bom dia galera, estou tentado editar usuários por meio de um modal, mas ele não está chamando os campos devidamente. Primeira postagem minha e já vai um mega código rs. Quem puder dar uma força aí eu agradeço muito !

 

Print do código php que seleciona os usuários cadastrados e mostra as opções de edição e exclusão abaixo.

 

 

 

 

 

image.png

2019-07-05 (1).png

 

2019-07-05 (2).png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basicamente o que tens de fazer é uma função que receberá como parâmetro cada value do(s) input(s) dentro do form, a mesma função se encarrega de inserir esses valores dentro de cada input.

 

Como eu já fiz uma ótima classe JS para modal vou apresentar o exemplo usando ela.

Arquivos usados ModalShow

 

Como primeiro passo insiro os arquivos e crio a arquitetura do modal:

<script src="ModalShow.js" type="text/javascript"></script>
<link href="ModalShow.css" rel="stylesheet" type="text/css"/>

<div class="modal" id="editar-usuario">
    <div class="modal-box">
        <div class="modal-header"></div>
        <div class="modal-content">
        </div>
    </div>
</div>

Note que o modal deve possuir um atributo #ID ao qual a classe vai saber qual modal é para gerenciar.

 

Dentro do classificador modal-content coloco o formulário; aqui vou usar só um input para simplificar.

<form method="post" action="arquivo_de_post.php">
    <input type="text" name="identificador" id="id-user" value="" />
    <button type="submit">Validar Formulário</button>
</form>

Então através do evento onclick aciono uma função enviando como parâmetro o id do usuário ao qual poderia ser outros dados.

Dentro da função ataco o input preenchendo seu atributo value com o parâmetro recebido, logo então exibo o modal.

 

Vejamos o exemplo completo:

<script src="ModalShow.js" type="text/javascript"></script>
<link href="ModalShow.css" rel="stylesheet" type="text/css"/>

<?php
$idDoUsuario = 10; // Simulando um ID do usuário recebido de uma query por exemplo
?>
<button onclick="EditarUsuario('<?= $idDoUsuario ?>');">Editar usuário</button>

<!-- Arquitetura do modal -->
<div class="modal" id="editar-usuario">
    <div class="modal-box">
        <div class="modal-header"></div>
        <div class="modal-content">

            <!-- Formulário -->
            <form method="post" action="arquivo_de_post.php">
                <!--
                esse input poderia ser type="hidden"
                coloquei text para melhor entendimento
                -->
                <input type="text" name="identificador" id="id-user" value="" />

                <button type="submit">Validar Formulário</button>
            </form>
            <!-- Fim do formulário -->

        </div>
    </div>
</div>
<!-- Fim da arquitetura do modal -->

<script>
    function EditarUsuario(id) {
        document.getElementById('id-user').value = id;
        EditarUsuario.prototype = new ModalShow('editar-usuario', false);
        EditarUsuario.prototype.open('Título para o modal', true);
    }
</script>

 

 

 

No entanto acredito que o melhor caminho como são vários inputs eu optaria por usar ajax.

Que ao acionar o modal carregaria um arquivo internamente da janela informando algum dado.

Esse arquivo faria uma consulta SQL para trazer os dados do usuário assim preenchendo cada input.

Se quiser um exemplo fazendo isso está aqui:

https://drive.google.com/file/d/1HEg_houJ4WO-YbHgGUwtrLQ39GnhZZiW/view?usp=sharing

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Júnior César
      Estou batendo a cabeça na parte de vericaçao de dados existente no banco, nesse caso eu estou tentando verificar se o cpf digitado apos validado existe no banco, mas não esta funcionando, não se e o erro esta no javascprit ou na pagina php, sera que alguem consegue me ajudar? Obrigado
      segue as paginas:
      cadastro.html
      <html lang="pt-br"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="Classes/css/estilo.css"> <script src="js/jquery-1.7.2.min.js"></script> <script src="js/jquery.validate.min.js"></script> <script src="js/validacao.js"></script> <script> </script> <title><?php echo $acaoPagina ?></title> </head> <body> <header> <nav> <ul> <li><a href="index.php">Inicio</a></li> <li><a href="especialidades.php">Especialidades</a></li> <li><a href="cadastrarMedico.php"> Cadastrar Médico</a></li> <li><a href="cadastrarEspecialidades.php">Cadastrar Especialidades</a></li> </ul> </nav> </header> <main> <section> <div class="div-25 cadastro"> <h1> <?php echo $acaoPagina ?> </h1> <span id="resultado"></span> <form id="formulario" name="frmcpf" action="dadosMedico.php" method="POST" onsubmit="camposMedico();"> <input type="hidden" name="id" value="<?php echo $Medico->getId_medico() ?>"> <input type="text" name="nome" placeholder="Nome" value="<?php echo $Medico->getNome() ?>"> <input type="text" name="cpf" placeholder="CPF" value="<?php echo $Medico->getCpf() ?>"> <input type="date" name="nascimento" value="<?php echo $Medico->getNascimento() ?>"> <input type="email" name="email" placeholder="E-Mail" value="<?php echo $Medico->getEmail() ?>"> <input type="text" name="telefone" placeholder="Telefone" value="<?php echo $Medico->getTelefone() ?>"> <input type="text" name="watshapp" placeholder="Watshapp" value="<?php echo $Medico->getWhatswapp() ?>"> <input type="text" name="crm" placeholder="CRM" value="<?php echo $Medico->getCrn() ?>"> <input type="text" name="salario" placeholder="Salário" value="<?php echo $Medico->getMedia_salarial() ?>"> <select name="especialidade_medico"> <?php if($Medico->getEspecialidade_nome()&& $Medico->getId_especialidade()): echo"<option value='{$Medico->getId_especialidade()}'>{$Medico->getEspecialidade_nome()}</option>"; else: echo"<option>Especialidade</option>"; endif; $selectDados->dadosEpcialidade($Esp); ?> </select> <input type="submit" value="<?php echo $submit ?>" onclick="camposMedico();"> </form> </div> </section> </main> <footer> </footer> </body> </html> ------------------------------------------------------------------------------------------------------------------
      validacao.js
      function init() { $("#formulario").validate({ rules: { nome: { required: true }, cpf: { required: true, verificaCPF: true }, nascimento: { required: true, verificaIdade: true } }, messages: { nome: { required: "Campo Nome Obrigatório " }, cpf: { required: "Campo CPF Obrigatório" }, nascimento: { required: "Campo Nascimento Obrigatório" } } }); } jQuery.validator.addMethod("verificaCPF", function (value, element) { value = value.replace('.', ''); value = value.replace('.', ''); cpf = value.replace('-', ''); while (cpf.length < 11) cpf = "0" + cpf; var expReg = /^0+$|^1+$|^2+$|^3+$|^4+$|^5+$|^6+$|^7+$|^8+$|^9+$/; var a = []; var b = new Number; var c = 11; for (i = 0; i < 11; i++) { a = cpf.charAt(i); if (i < 9) b += (a * --c); } if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11 - x } b = 0; c = 11; for (y = 0; y < 10; y++) b += (a[y] * c--); if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11 - x; } if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10]) || cpf.match(expReg)) return false; var verifica=false; jQuery.ajax({ url: 'teste.php?cpf='+cpf, async: false, success: function(data) { if(data == 0) verifica = true; }}); if(!verifica) return false; return true; }, "Informe um CPF válido."); jQuery.validator.addMethod("verificaIdade", function (value, element) { var data = new Date(); value = value.split("-"); nascimento = value; var anos = data.getFullYear() - nascimento[0]; if (nascimento[1] > data.getMonth()) { anos -= 1; } else if (nascimento[1] == data.getMonth()) { if (nascimento[2] > data.getDate()) { anos -= 1; } } if (anos <= 22) { return false; } return true; }, "A idade não pode ser menor que 22 anos "); $(document).ready(init);
         ----------------------------------------------
      teste.php
       
      <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <?php #Verifica se tem um email para pesquisa //$emailPostado = "jrcjuniorcesar@gmil.com"; if(isset($_GET['cpf'])){ #Recebe o Email Postado $emailPostado = $_GET['cpf']; #Conecta banco de dados $con = mysqli_connect("localhost", "root", "", "crud"); $sql = mysqli_query($con, "SELECT * FROM medicos where cpf ='{$emailPostado}'") or print mysqli_errno($con); #Se o retorno for maior do que zero, diz que já existe um. $valor; if(($sql) AND ($sql->num_rows != 0)){ while($linha= mysqli_fetch_assoc($sql)){ $valor = $sql->num_rows. "<br>"; } }else{ $valor = 0; } echo $valor; } ?> </body> </html>  --------------------------
      Banco de dados

       
      create database crud; use crud; create table especialidades( cod int auto_increment, especialidade varchar (45), primary key(cod) ); create table medicos( id int auto_increment, nome varchar(45), nascimento date, cpf varchar(11) unique key, crm varchar(10), email varchar(35) unique key, telefone varchar(12), whatsapp varchar(12), salario double, especialidade_medico int, primary key(id), foreign key(especialidade_medico) references especialidades(cod)  
    • Por Matheus Avila
      Bom dia, Tudo bem ? queria salvar o seguinte formulário no banco de dados mas de forma automática sem precisar aperta o input  
       

       
      <!DOCTYPE html> <html> <head> <title></title> </head> <body> <?php $data = date('Y-m-d'); $hora = date('H:i:s'); ?> <form method="POST" action="#"> <input type="date" name="data" value="<?php echo $data ?>"> <input type="time" name="hora" value="<?php echo $hora ?>"> <input type="submit" name="enviar"> <?php include ('conexao.php'); $conexao = "INSERT INTO matheus (data, hora) VALUE ('$data', '$hora')"; $query = $mysqli->query($conexao) ?> </form> </body> </html>  
    • Por Matheus Avila
      Tudo bem pessoal? 
       
      Estou começando agora a desenvolver e estou com uma grande duvida, criei a parte de login do sistema mas agora preciso que salve a hora e a data que o usuário entrou no sistema já tentei de vários métodos mas não obtive resultado, se alguém conseguisse me ajudar ficaria muito grato!!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.