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

Update no banco com href


Maxsuel Rodrigues

Pergunta

Bom dia, pessoal!

Seria possível o update em uma coluna de um banco com apenas um click em um link? Estou criando um formulário de cadastro de novos colaboradores, onde a cara 15 dias aparece um ícone vermelho para chamar a atenção do usuário, ao fazer a avaliação de 15 dias o usuário precisa clicar no ícone para que o ícone ficar verde. A minha ideia é atualizar o banco de dados com o número 1 ao clicar no ícone vermelho.

Isso seria possível?

Screenshot_20231023_110251_Gallery.jpg

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 1
2 horas atrás, Maxsuel Rodrigues disse:

Tabela do banco:

Create table novo_colaborador_portal (
ID Int UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
data Date,
nome Varchar(50),
funcao Varchar(30),
diaA Int,
diaB Int,
diaC Int,
diaD Int,
diaE Int,
diaF Int,
Primary Key (ID)) ENGINE = MyISAM;

 

 

arquivo index.php:

<!DOCTYPE html>
<?php
include_once("conexao.php");
?>
<html lang="pt-br">
<head>
    <meta charset="utf-8">
    <title>Teste - Novo Colaborador</title>
    <style type="text/css">
/* ZERAR MARGENS */
* {
    margin: 0;
    padding: 0;
    border: 0;
}
a {
    text-decoration: none;
    color: #000;
}
body {
    background-color: rgb(244, 242, 243);
}
/* NOVO COLABORADOR */
.novo-colaborador {
    width: 100%;
    height: auto;
    border: 1px solid #ccc;
}
.novo-colaborador table {
    width: 100%;
}
/* TITILO DAS INFORMAÇÔES - class: titulo-info */
.titulo-info {
    width: 100%;
    height: 40px;
    background-color: rgb(38, 134, 86);
    margin: 0 auto;
}
.titulo-info h3 {
    text-align: center;
    font: bold 20px Calibri;
    color: #eee;
    line-height: 40px;
}
/* ICONE DE EXPANDIR/RECOLHER NO TITULO */
.icon-expandir {
    width: 35px;
    height: 35px;
    margin-top: 2px;
    background-color: rgb(38, 134, 86);
    border-radius: 50%;
    text-align: center;
    font-size: 18px;
    line-height: 37px;
    position: absolute;
    cursor: pointer;
    color: #fff;
    transition: .2s;
}
.icon-expandir:hover {
    background-color: #fff;
    color: rgb(38, 134, 86);
}
#btn-expandir-novo-colaborador:checked ~ .form-novo-colaborador {
    display: none;
}
input[name="expandir-form-novo-colaborador"] {
    display: none;
}
/* FORMULARIO PARA CADASTRAR NOVO COLABORADOR NO PORTAL */
.form-novo-colaborador {
    width: 100%;
    height: auto;
    position: relative;
    margin-top: 10px;
    margin-bottom: 10px;
    display: block;
}
.form-novo-colaborador h1 {
    text-align: center;
    color: #000;
    font: bold 20px Calibri;
    margin: 10px;
}
.form-novo-colaborador label {
    color: #000;
    font: bold 17px Calibri;
    margin: 0px 0px 0px 50px;
}
.data-novo-colaborador {
    color: #000;
    font: normal 18px Calibri;
    width: 216px;
    height: 25px;
    text-align: center;
    text-transform: uppercase;
    border-radius: 20px;
    padding: 2px;
    letter-spacing: 1px;
}
.nome-novo-colaborador {
    color: #000;
    font: normal 18px Calibri;
    width: 400px;
    height: 25px;
    text-transform: uppercase;
    border-radius: 20px;
    padding: 2px 10px;
    letter-spacing: 1px;
}
.funcao-novo-colaborador {
    color: #000;
    font: normal 18px Calibri;
    width: 300px;
    height: 25px;
    text-transform: uppercase;
    border-radius: 20px;
    padding: 2px 10px;
    letter-spacing: 1px;
}
.salvar-novo-colaborador {
    width: 100px;
    height: 35px;
    padding: 5px;
    margin-left: 30px;
    border-radius: 20px;
    cursor: pointer;
    font: bold 18px Calibri;
    transition: .2s;
    color: rgb(38, 134, 86);
    background-color: #fff;
}
.salvar-novo-colaborador:hover {
    color: #fff;
    background-color: rgb(38, 134, 86);
}
/* TABELA - NOVO COLABORADOR */
.novo-colaborador table {
    width: 100%;
    height: auto;
}
.novo-colaborador table th {
    text-align: center;
    font: bold 18px Calibri;
    padding: 5px;
}
.novo-colaborador table tr td {
    text-align: center;
    font: normal 17px Calibri;
    text-transform: uppercase;
    border-top: 1px solid #ccc;
    padding: 5px;
}
.novo-colaborador table tr:hover td {
    color: #fff;
    background-color: rgb(244, 123, 23);
}
.info-dias-novo-colaborador {
    background-color: #fff;
    font: normal 12px Calibri;
    position: absolute;
    margin-top: -22px;
    margin-left: 20px;
    padding: 5px;
    border-radius: 20px;
    display: none;
    color: #000;
}
.btn-excluir {
    color: rgb(244, 123, 23);
}
.icon-info {
    color: #aaa;
    font-size: 14px;
    cursor: pointer;
}
.icon-info:hover .info-dias-novo-colaborador {
    display: block;
}

.icon-confirmado-ativado {
    color: green;
}
.icon-confirmado-desativado {
    color: red;
}
.icon-atualizar {
    color: #aaa;
    font-size: 15px;
    animation: rodar-atualizacao 1.5s infinite;
}
.novo-colaborador table tr:hover .btn-excluir {
    color: #fff;
}
.novo-colaborador table tr:hover .icon-confirmado {
    color: #fff;
}
.novo-colaborador table tr:hover .icon-atualizar {
    color: #fff;
}
@keyframes rodar-atualizacao {
    10% { transform: rotate(35deg);}
    20% { transform: rotate(70deg);}
    30% { transform: rotate(105deg);}
    40% { transform: rotate(140deg);}
    50% { transform: rotate(175deg);}
    60% { transform: rotate(210deg);}
    70% { transform: rotate(245deg);}
    80% { transform: rotate(280deg);}
    90% { transform: rotate(315deg);}
    100% { transform: rotate(350deg);}
}
    
</style>
</head>
<body>
        <!-- INICIO NOVO COLABORADOR -->
        <div class="novo-colaborador" id="aparecer-novo-colaborador">
            <input type="checkbox" name="expandir-form-novo-colaborador" id="btn-expandir-novo-colaborador" checked="">
            <label for="btn-expandir-novo-colaborador">
                <div class="icon-expandir" title="Clique para expandir/recolher">
                    <i>↕</i>
                </div>
            </label>
            <div class="titulo-info">
                <h3>Novo Colaborador</h3>
            </div>
            <div class="form-novo-colaborador">
                <form method="POST" action="cadastrar.php">
                    <h1>Preencha as informações abaixo para cadastrar o novo colaborador.</h1>
                    
                    <label for="data">Data:</label>
                    <input class="data-novo-colaborador" autocomplete="off" type="date" name="data" id="data" required>
                    
                    <label for="nome">Nome:</label>
                    <input class="nome-novo-colaborador" autocomplete="off" type="text" name="nome" id="nome" required>

                    <label for="funcao">Função:</label>
                    <input class="funcao-novo-colaborador" autocomplete="off" type="text" name="funcao" id="funcao" required>

                    <button class="salvar-novo-colaborador" type="submit" id="salvar" name="salvar" title="Clique para salvar">Salvar</button>
                </form>
            </div>
            <table cellspacing="0">
                <tr>
                    <th width="2%"></th>
                    <th width="10%">Data</th>
                    <th width="40%">Nome do Colaborador</th>
                    <th width="20%">Função</th>
                    <th width="4%">15 Dias</th>
                    <th width="4%">30 Dias</th>
                    <th width="4%">45 Dias</th>
                    <th width="4%">60 Dias</th>
                    <th width="4%">75 Dias</th>
                    <th width="4%">90 Dias</th>
                    <th width="4%"></th>
                </tr>
                <?php                
                    $sql = "SELECT * FROM novo_colaborador_portal ORDER BY id ASC";
                    $result = $conexao->query($sql);

                    while ($user_data = mysqli_fetch_assoc($result)) {
                        
                        // pega as datas do banco e data atual e transforma em DIA-MES-ANO
                        $dataInput = date('d/m/Y', strtotime($user_data['data']));                        
                        $dataHoje = date('d/m/Y');
                        
                        // transforma a data do formato BR para o formato americano, ANO-MES-DIA
                        $data1 = implode('-', array_reverse(explode('/', $dataInput)));
                        $data2 = implode('-', array_reverse(explode('/', $dataHoje)));
                        
                        // converte as datas para o formato timestamp
                        $d1 = strtotime($data1); 
                        $d2 = strtotime($data2);
                        
                        // verifica a diferença em segundos entre as duas datas e divide pelo número de segundos que um dia possui
                        $dataFinal = ($d2 - $d1) / 86400;
                        
                        $sql = "SELECT * FROM novo_colaborador_portal";
                        $sql_query = mysqli_query($con,$sql);
                        $acess = mysqli_fetch_all($sql_query,MYSQLI_ASSOC);
                ?>
                        <tr>
                            <td width="2%" class="icon-info">
                                <i class="fas fa-info"></i>
                                <span class="info-dias-novo-colaborador">O colaborador está conosco há <strong><?php echo $dataFinal ?> dias.</strong></span>
                            </td>
                            <td width="10%">
                                <?php echo date('d/m/Y', strtotime($user_data['data'])) ?>
                            </td>
                            <td width="40%">
                                <?php echo $user_data['nome'] ?>
                            </td>
                            <td width="20%">
                                <?php echo $user_data['funcao'] ?>
                            </td>
                            <td width="4%">
                                <?php
                                if ($dataFinal >= 15) {
                                    if($user_data['diaA']=="1") {
                                        echo "<a href=php_action/desativa_diaA.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
                                        }
                                        else {
                                        echo "<a href=php_action/ativa_diaA.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
                                        }
                                } else {
                                    echo "<i class='icon-atualizar'>♠</i>";
                                }
                                ?>
                            </td>
                            <td width="4%">
                                <?php
                                if ($dataFinal >= 30) {
                                    if($user_data['diaB']=="1") {
                                        echo "<a href=php_action/desativa_diaB.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
                                        }
                                        else {
                                        echo "<a href=php_action/ativa_diaB.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
                                        }
                                } else {
                                    echo "<i class='icon-atualizar'>♠</i>";
                                }
                                ?>
                            </td>
                            <td width="4%">
                                <?php
                                if ($dataFinal >= 45) {
                                    if($user_data['diaC']=="1") {
                                        echo "<a href=php_action/desativa_diaC.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
                                        }
                                        else {
                                        echo "<a href=php_action/ativa_diaC.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
                                        }
                                } else {
                                    echo "<i class='icon-atualizar'>♠</i>";
                                }
                                ?>
                            </td>
                            <td width="4%">
                                <?php
                                if ($dataFinal >= 60) {
                                    if($user_data['diaD']=="1") {
                                        echo "<a href=php_action/desativa_diaD.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
                                        }
                                        else {
                                        echo "<a href=php_action/ativa_diaD.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
                                        }
                                } else {
                                    echo "<i class='icon-atualizar'>♠</i>";
                                }
                                ?>
                            </td>
                            <td width="4%">
                                <?php
                                if ($dataFinal >= 75) {
                                    if($user_data['diaE']=="1") {
                                        echo "<a href=php_action/desativa_diaE.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
                                        }
                                        else {
                                        echo "<a href=php_action/ativa_diaE.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
                                        }
                                } else {
                                    echo "<i class='icon-atualizar'>♠</i>";
                                }
                                ?>
                            </td>
                            <td width="4%">
                                <?php
                                if ($dataFinal >= 90) {
                                    if($user_data['diaF']=="1") {
                                        echo "<a href=php_action/desativa_diaF.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
                                        }
                                        else {
                                        echo "<a href=php_action/ativa_diaF.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
                                        }
                                } else {
                                    echo "<i class='icon-atualizar'>♠</i>";
                                }
                                ?>
                            </td>
                            <td width="4%">
                                <?php echo "<a class='btn-excluir' href='excluir.php?id=$user_data[ID]' onclick='return confirm(`Deseja mesmo excluir este colaborador?`);' title='Clique para excluir o colaborador'>".'Excluir'."</a>" ?>
                            </td>
                        </tr>
                <?php
                    }
                ?>
            </table>
        </div>
        <!-- FIM NOVO COLABORADOR -->
</body>
</html>

 

 

arquivo cadastrar.php:

<?php
include_once("conexao.php");

if (isset($_POST['salvar'])) {

    $data = ($_POST['data']);
    $nome = ($_POST['nome']);
    $funcao = ($_POST['funcao']);
    $diaA = 0;
    $diaB = 0;
    $diaC = 0;
    $diaD = 0;
    $diaE = 0;
    $diaF = 0;

    $result = mysqli_query($conexao, "INSERT INTO novo_colaborador_portal(data, nome, funcao, diaA, diaB, diaC, diaD, diaE, diaF)
    VALUES ('$data', '$nome', '$funcao', '$diaA', '$diaB', '$diaC', '$diaD', '$diaE', '$diaF')");
    
    header('Location: index.php');
}
?>

 

 

arquivo ativa_diaA.php:

<?php
include_once("conexao.php");   
  
    if (isset($_GET['id'])){
        $id=$_GET['id'];
        $sql="UPDATE novo_colaborador_portal SET diaA=1 WHERE id=$id";
        mysqli_query($conexao,$sql);
    }
header("Location: ../index.php");
?>

 

 

arquivo desativa_diaA.php:

<?php
include_once("conexao.php");   
  
    if (isset($_GET['id'])){
        $id=$_GET['id'];
        $sql="UPDATE novo_colaborador_portal SET diaA=0 WHERE id=$id";
        mysqli_query($conexao,$sql);
    }
header("Location: ../index.php");
?>

 

 

Esse pequeno projeto é bem simples, o objetivo dele é ajudar o RH da empresa ao fazer um acompanhamento mais de perto com o colaborador novato, onde a cada 15 dias vai aparecer para o RH um ícone vermelho para informar que ele já chegou no dia do bate papo e ao realizar essa conversa/avaliação o próprio RH vai clicar no ícone vermelho que vai ficar verde.

 
Estou utilizando o font awesome como referência para ícones, por esse motivo retirei o link de lá e coloquei outros ícones simples do próprio Windows no arquivo só para visualização e entendimento.
 
A ideia inicial é fazer com que cada coluna diaA, diaB, diaC... Receba o valor 0 ao cadastrar o novo colaborador. No código tem duas condições, uma para a quantidade de dias, caso seja verdadeiro entra em outra condição para analisar o valor da coluna do banco, se o valor estiver 0 fica vermelho, se o valor estiver 1 fica verde, só isso. Porém o ícone ao ser clicado via href não atualiza o banco com o valor 1 .
 
Desde já agradeço toda ajuda recebida!

Problema: eu fiz o teste por aqui e funcionou. Só tive que criar a pasta php_action para hospedar ativa_diaA.php e desativa_diaA.php, os dois funcionam, mas eu tive que mudar a linha include_once("..\conexao.php");  bem como a linha 280 do index.php para  $sql_query = mysqli_query($conexao,$sql); e também tive que criar o arquivo conexao.php no mesmo diretório do index.php assim:

<?php
$conexao=new mysqli("localhost","root","","laravel");

Usei dois registros, (Frank,'2023-10-25') e os ícones vermelho-verde não estavam disponíveis. Usei (João,'2023-09-25') e os dois primeiros ícones estavam vermelhos. 


 

Captura de tela 2023-10-25 133607.png

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde!

Usar o fetch junto ao PHP? Não sei como usar, alguma dica mais específica?

Não existe uma maneira mais fácil de incluir? O meu código para fazer a query no banco está assim.

 

arquivo diaA.php

<?php
include_once("conexao.php");   
  
    if (!empty($_GET['id'])){
        $id=$_GET['id'];
        $sql="UPDATE novo_colaborador_portal SET diaA=1 WHERE id=$id";
        mysqli_query($conexao,$sql);
        
    }
    
    header('location: ../index.php');
?>

 

 

 

if($user_data['diaA']=="1") {
                                        echo "<a href=php_action/desativa_diaA.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i class='fas fa-check-circle icon-confirmado'></i></a>";
                                        }
                                        else {
                                            echo "<a href=php_action/ativa_diaA.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i class='fas fa-check-circle icon-confirmado'></i></a>";
                                        }

Link para o comentário
Compartilhar em outros sites

  • 0

O código seguinte muda o status do usuário para confirmar ou confirmado, com a ajuda de um link

teste.php

<?php
// mysql user_data (id,diaA)(1,0)
$mysqli=new mysqli("localhost","root","","laravel");
if(isset($_GET['id'])){
	$id=$_GET['id'];
	$status=$_GET['diaA'];
	if($status==0){$status=1;} else {$status=0;}
	$mysqli->query("update user_data set diaA=$status where id=$id");
	header("location:teste.php");}
$user=1;
$query=$mysqli->query("select * from user_data where id=$user");
$user_data=$query->fetch_assoc();
$status=$user_data['diaA'];
$id=$user_data['id'];
if($status==1){$mensagem="Confirmado";} else {$mensagem="Confirmar";}
echo "Usuário: <a href=?id=$id&diaA=$status>$mensagem</a>";

 

Link para o comentário
Compartilhar em outros sites

  • 0

Acredito que usando javascript de forma asíncrona, sem a necessidade de recarregar toda a página, seria a forma mais elegante.
Mas tudo bem se preferir resolver de outra forma.
Se funcionar, tá bom demais!

Link para o comentário
Compartilhar em outros sites

  • 0
3 horas atrás, lowys disse:

Acredito que usando javascript de forma asíncrona, sem a necessidade de recarregar toda a página, seria a forma mais elegante.
Mas tudo bem se preferir resolver de outra forma.
Se funcionar, tá bom demais!

Eu concordo, mas eu sou novato, comecei a estudar o PHP só há três anos, e só sei trabalhar com o método GET pelo PHP, o problema é aquele monte de informações que ficam no cabeçalho e se você atualiza a página, ele pode duplicar um registro na tabela, é um problema que sempre enfrento nos meus projetos. Diante do exposto, a função assíncrona do JavaScript é uma ótima solução. Por outro lado, eu fiquei contente com o código teste.php que publiquei hoje; apesar de usar o método GET pelo marcador <a href>, as variáveis envolvidas não aparecem no topo do cabeçalho, e assim consigo evitar o problema da duplicidade de registros, no caso de atualizar a página por engano.

Outro problema é o próprio JavaScript, eu preciso de três dias para fazer o código funcionar:

 

teste.html

<script>
    async function atualizar(){
        formData=new FormData()
        formData.append("status",teste.innerHTML)
        response=await fetch('teste.php',{
            method: "POST",
            body: formData});
        if (response.ok){
            data=await response.json()
            teste.innerHTML=data.mensagem}}
</script>
Usuario: <a id="teste" onclick="atualizar()">Confirmar</a>

-------------------------------------

teste.php

<?php
// mysql user_data (id,diaA)(1,0)
$status=$_POST['status'];
$mysqli=new mysqli("localhost","root","","laravel");
$user=1;
if($status=="Confirmar"){$novo=1;} else {$novo=0;}
$mysqli->query("update user_data set diaA=$novo where id=$user");
$query=$mysqli->query("select * from user_data where id=$user");
$user_data=$query->fetch_assoc();
$status=$user_data['diaA'];
$id=$user_data['id'];
if($status==1){$mensagem="Confirmado";} else {$mensagem="Confirmar";}
$json=json_encode(["mensagem"=>$mensagem]);
echo $json;

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

  • 0
4 horas atrás, Maxsuel Rodrigues disse:

Obrigado pela ajuda pessoal, mas ainda não consegui colocar para funcionar.

 

Estou tentando de diversas formas, mas ainda não consegui validar ao clicar no ícone.

Tem jeito de você publicar todos os códigos inclusive a estrutura das tabelas? Qualquer coisa estou a disposição no frankhosaka@gmail.com.

Link para o comentário
Compartilhar em outros sites

  • 0

Tabela do banco:

Create table novo_colaborador_portal (
ID Int UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
data Date,
nome Varchar(50),
funcao Varchar(30),
diaA Int,
diaB Int,
diaC Int,
diaD Int,
diaE Int,
diaF Int,
Primary Key (ID)) ENGINE = MyISAM;

 

 

arquivo index.php:

<!DOCTYPE html>
<?php
include_once("conexao.php");
?>
<html lang="pt-br">
<head>
    <meta charset="utf-8">
    <title>Teste - Novo Colaborador</title>
    <style type="text/css">
/* ZERAR MARGENS */
* {
    margin: 0;
    padding: 0;
    border: 0;
}
a {
    text-decoration: none;
    color: #000;
}
body {
    background-color: rgb(244, 242, 243);
}
/* NOVO COLABORADOR */
.novo-colaborador {
    width: 100%;
    height: auto;
    border: 1px solid #ccc;
}
.novo-colaborador table {
    width: 100%;
}
/* TITILO DAS INFORMAÇÔES - class: titulo-info */
.titulo-info {
    width: 100%;
    height: 40px;
    background-color: rgb(38, 134, 86);
    margin: 0 auto;
}
.titulo-info h3 {
    text-align: center;
    font: bold 20px Calibri;
    color: #eee;
    line-height: 40px;
}
/* ICONE DE EXPANDIR/RECOLHER NO TITULO */
.icon-expandir {
    width: 35px;
    height: 35px;
    margin-top: 2px;
    background-color: rgb(38, 134, 86);
    border-radius: 50%;
    text-align: center;
    font-size: 18px;
    line-height: 37px;
    position: absolute;
    cursor: pointer;
    color: #fff;
    transition: .2s;
}
.icon-expandir:hover {
    background-color: #fff;
    color: rgb(38, 134, 86);
}
#btn-expandir-novo-colaborador:checked ~ .form-novo-colaborador {
    display: none;
}
input[name="expandir-form-novo-colaborador"] {
    display: none;
}
/* FORMULARIO PARA CADASTRAR NOVO COLABORADOR NO PORTAL */
.form-novo-colaborador {
    width: 100%;
    height: auto;
    position: relative;
    margin-top: 10px;
    margin-bottom: 10px;
    display: block;
}
.form-novo-colaborador h1 {
    text-align: center;
    color: #000;
    font: bold 20px Calibri;
    margin: 10px;
}
.form-novo-colaborador label {
    color: #000;
    font: bold 17px Calibri;
    margin: 0px 0px 0px 50px;
}
.data-novo-colaborador {
    color: #000;
    font: normal 18px Calibri;
    width: 216px;
    height: 25px;
    text-align: center;
    text-transform: uppercase;
    border-radius: 20px;
    padding: 2px;
    letter-spacing: 1px;
}
.nome-novo-colaborador {
    color: #000;
    font: normal 18px Calibri;
    width: 400px;
    height: 25px;
    text-transform: uppercase;
    border-radius: 20px;
    padding: 2px 10px;
    letter-spacing: 1px;
}
.funcao-novo-colaborador {
    color: #000;
    font: normal 18px Calibri;
    width: 300px;
    height: 25px;
    text-transform: uppercase;
    border-radius: 20px;
    padding: 2px 10px;
    letter-spacing: 1px;
}
.salvar-novo-colaborador {
    width: 100px;
    height: 35px;
    padding: 5px;
    margin-left: 30px;
    border-radius: 20px;
    cursor: pointer;
    font: bold 18px Calibri;
    transition: .2s;
    color: rgb(38, 134, 86);
    background-color: #fff;
}
.salvar-novo-colaborador:hover {
    color: #fff;
    background-color: rgb(38, 134, 86);
}
/* TABELA - NOVO COLABORADOR */
.novo-colaborador table {
    width: 100%;
    height: auto;
}
.novo-colaborador table th {
    text-align: center;
    font: bold 18px Calibri;
    padding: 5px;
}
.novo-colaborador table tr td {
    text-align: center;
    font: normal 17px Calibri;
    text-transform: uppercase;
    border-top: 1px solid #ccc;
    padding: 5px;
}
.novo-colaborador table tr:hover td {
    color: #fff;
    background-color: rgb(244, 123, 23);
}
.info-dias-novo-colaborador {
    background-color: #fff;
    font: normal 12px Calibri;
    position: absolute;
    margin-top: -22px;
    margin-left: 20px;
    padding: 5px;
    border-radius: 20px;
    display: none;
    color: #000;
}
.btn-excluir {
    color: rgb(244, 123, 23);
}
.icon-info {
    color: #aaa;
    font-size: 14px;
    cursor: pointer;
}
.icon-info:hover .info-dias-novo-colaborador {
    display: block;
}

.icon-confirmado-ativado {
    color: green;
}
.icon-confirmado-desativado {
    color: red;
}
.icon-atualizar {
    color: #aaa;
    font-size: 15px;
    animation: rodar-atualizacao 1.5s infinite;
}
.novo-colaborador table tr:hover .btn-excluir {
    color: #fff;
}
.novo-colaborador table tr:hover .icon-confirmado {
    color: #fff;
}
.novo-colaborador table tr:hover .icon-atualizar {
    color: #fff;
}
@keyframes rodar-atualizacao {
    10% { transform: rotate(35deg);}
    20% { transform: rotate(70deg);}
    30% { transform: rotate(105deg);}
    40% { transform: rotate(140deg);}
    50% { transform: rotate(175deg);}
    60% { transform: rotate(210deg);}
    70% { transform: rotate(245deg);}
    80% { transform: rotate(280deg);}
    90% { transform: rotate(315deg);}
    100% { transform: rotate(350deg);}
}
    
</style>
</head>
<body>
        <!-- INICIO NOVO COLABORADOR -->
        <div class="novo-colaborador" id="aparecer-novo-colaborador">
            <input type="checkbox" name="expandir-form-novo-colaborador" id="btn-expandir-novo-colaborador" checked="">
            <label for="btn-expandir-novo-colaborador">
                <div class="icon-expandir" title="Clique para expandir/recolher">
                    <i>↕</i>
                </div>
            </label>
            <div class="titulo-info">
                <h3>Novo Colaborador</h3>
            </div>
            <div class="form-novo-colaborador">
                <form method="POST" action="cadastrar.php">
                    <h1>Preencha as informações abaixo para cadastrar o novo colaborador.</h1>
                    
                    <label for="data">Data:</label>
                    <input class="data-novo-colaborador" autocomplete="off" type="date" name="data" id="data" required>
                    
                    <label for="nome">Nome:</label>
                    <input class="nome-novo-colaborador" autocomplete="off" type="text" name="nome" id="nome" required>

                    <label for="funcao">Função:</label>
                    <input class="funcao-novo-colaborador" autocomplete="off" type="text" name="funcao" id="funcao" required>

                    <button class="salvar-novo-colaborador" type="submit" id="salvar" name="salvar" title="Clique para salvar">Salvar</button>
                </form>
            </div>
            <table cellspacing="0">
                <tr>
                    <th width="2%"></th>
                    <th width="10%">Data</th>
                    <th width="40%">Nome do Colaborador</th>
                    <th width="20%">Função</th>
                    <th width="4%">15 Dias</th>
                    <th width="4%">30 Dias</th>
                    <th width="4%">45 Dias</th>
                    <th width="4%">60 Dias</th>
                    <th width="4%">75 Dias</th>
                    <th width="4%">90 Dias</th>
                    <th width="4%"></th>
                </tr>
                <?php                
                    $sql = "SELECT * FROM novo_colaborador_portal ORDER BY id ASC";
                    $result = $conexao->query($sql);

                    while ($user_data = mysqli_fetch_assoc($result)) {
                        
                        // pega as datas do banco e data atual e transforma em DIA-MES-ANO
                        $dataInput = date('d/m/Y', strtotime($user_data['data']));                        
                        $dataHoje = date('d/m/Y');
                        
                        // transforma a data do formato BR para o formato americano, ANO-MES-DIA
                        $data1 = implode('-', array_reverse(explode('/', $dataInput)));
                        $data2 = implode('-', array_reverse(explode('/', $dataHoje)));
                        
                        // converte as datas para o formato timestamp
                        $d1 = strtotime($data1); 
                        $d2 = strtotime($data2);
                        
                        // verifica a diferença em segundos entre as duas datas e divide pelo número de segundos que um dia possui
                        $dataFinal = ($d2 - $d1) / 86400;
                        
                        $sql = "SELECT * FROM novo_colaborador_portal";
                        $sql_query = mysqli_query($con,$sql);
                        $acess = mysqli_fetch_all($sql_query,MYSQLI_ASSOC);
                ?>
                        <tr>
                            <td width="2%" class="icon-info">
                                <i class="fas fa-info"></i>
                                <span class="info-dias-novo-colaborador">O colaborador está conosco há <strong><?php echo $dataFinal ?> dias.</strong></span>
                            </td>
                            <td width="10%">
                                <?php echo date('d/m/Y', strtotime($user_data['data'])) ?>
                            </td>
                            <td width="40%">
                                <?php echo $user_data['nome'] ?>
                            </td>
                            <td width="20%">
                                <?php echo $user_data['funcao'] ?>
                            </td>
                            <td width="4%">
                                <?php
                                if ($dataFinal >= 15) {
                                    if($user_data['diaA']=="1") {
                                        echo "<a href=php_action/desativa_diaA.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
                                        }
                                        else {
                                        echo "<a href=php_action/ativa_diaA.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
                                        }
                                } else {
                                    echo "<i class='icon-atualizar'>♠</i>";
                                }
                                ?>
                            </td>
                            <td width="4%">
                                <?php
                                if ($dataFinal >= 30) {
                                    if($user_data['diaB']=="1") {
                                        echo "<a href=php_action/desativa_diaB.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
                                        }
                                        else {
                                        echo "<a href=php_action/ativa_diaB.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
                                        }
                                } else {
                                    echo "<i class='icon-atualizar'>♠</i>";
                                }
                                ?>
                            </td>
                            <td width="4%">
                                <?php
                                if ($dataFinal >= 45) {
                                    if($user_data['diaC']=="1") {
                                        echo "<a href=php_action/desativa_diaC.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
                                        }
                                        else {
                                        echo "<a href=php_action/ativa_diaC.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
                                        }
                                } else {
                                    echo "<i class='icon-atualizar'>♠</i>";
                                }
                                ?>
                            </td>
                            <td width="4%">
                                <?php
                                if ($dataFinal >= 60) {
                                    if($user_data['diaD']=="1") {
                                        echo "<a href=php_action/desativa_diaD.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
                                        }
                                        else {
                                        echo "<a href=php_action/ativa_diaD.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
                                        }
                                } else {
                                    echo "<i class='icon-atualizar'>♠</i>";
                                }
                                ?>
                            </td>
                            <td width="4%">
                                <?php
                                if ($dataFinal >= 75) {
                                    if($user_data['diaE']=="1") {
                                        echo "<a href=php_action/desativa_diaE.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
                                        }
                                        else {
                                        echo "<a href=php_action/ativa_diaE.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
                                        }
                                } else {
                                    echo "<i class='icon-atualizar'>♠</i>";
                                }
                                ?>
                            </td>
                            <td width="4%">
                                <?php
                                if ($dataFinal >= 90) {
                                    if($user_data['diaF']=="1") {
                                        echo "<a href=php_action/desativa_diaF.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
                                        }
                                        else {
                                        echo "<a href=php_action/ativa_diaF.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
                                        }
                                } else {
                                    echo "<i class='icon-atualizar'>♠</i>";
                                }
                                ?>
                            </td>
                            <td width="4%">
                                <?php echo "<a class='btn-excluir' href='excluir.php?id=$user_data[ID]' onclick='return confirm(`Deseja mesmo excluir este colaborador?`);' title='Clique para excluir o colaborador'>".'Excluir'."</a>" ?>
                            </td>
                        </tr>
                <?php
                    }
                ?>
            </table>
        </div>
        <!-- FIM NOVO COLABORADOR -->
</body>
</html>

 

 

arquivo cadastrar.php:

<?php
include_once("conexao.php");

if (isset($_POST['salvar'])) {

    $data = ($_POST['data']);
    $nome = ($_POST['nome']);
    $funcao = ($_POST['funcao']);
    $diaA = 0;
    $diaB = 0;
    $diaC = 0;
    $diaD = 0;
    $diaE = 0;
    $diaF = 0;

    $result = mysqli_query($conexao, "INSERT INTO novo_colaborador_portal(data, nome, funcao, diaA, diaB, diaC, diaD, diaE, diaF)
    VALUES ('$data', '$nome', '$funcao', '$diaA', '$diaB', '$diaC', '$diaD', '$diaE', '$diaF')");
    
    header('Location: index.php');
}
?>

 

 

arquivo ativa_diaA.php:

<?php
include_once("conexao.php");   
  
    if (isset($_GET['id'])){
        $id=$_GET['id'];
        $sql="UPDATE novo_colaborador_portal SET diaA=1 WHERE id=$id";
        mysqli_query($conexao,$sql);
    }
header("Location: ../index.php");
?>

 

 

arquivo desativa_diaA.php:

<?php
include_once("conexao.php");   
  
    if (isset($_GET['id'])){
        $id=$_GET['id'];
        $sql="UPDATE novo_colaborador_portal SET diaA=0 WHERE id=$id";
        mysqli_query($conexao,$sql);
    }
header("Location: ../index.php");
?>

 

 

Esse pequeno projeto é bem simples, o objetivo dele é ajudar o RH da empresa ao fazer um acompanhamento mais de perto com o colaborador novato, onde a cada 15 dias vai aparecer para o RH um ícone vermelho para informar que ele já chegou no dia do bate papo e ao realizar essa conversa/avaliação o próprio RH vai clicar no ícone vermelho que vai ficar verde.

 
Estou utilizando o font awesome como referência para ícones, por esse motivo retirei o link de lá e coloquei outros ícones simples do próprio Windows no arquivo só para visualização e entendimento.
 
A ideia inicial é fazer com que cada coluna diaA, diaB, diaC... Receba o valor 0 ao cadastrar o novo colaborador. No código tem duas condições, uma para a quantidade de dias, caso seja verdadeiro entra em outra condição para analisar o valor da coluna do banco, se o valor estiver 0 fica vermelho, se o valor estiver 1 fica verde, só isso. Porém o ícone ao ser clicado via href não atualiza o banco com o valor 1 .
 
Desde já agradeço toda ajuda recebida!
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,7k
×
×
  • Criar Novo...