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

Controle de Entrada


gelrodrigues

Pergunta

Olá Galera,

Help me! Tenho uma criação que está só no visual e meu conhecimento é bem pouquinho. Estou tentando criar um Controle de Entrada e Lançamentos de Entrada e saida, Visitas entre outros, porém para agora só preciso fazer duas coisas.

                            <ol><li><label>
                                <input type="checkbox" name="ckFruta[]" checked value="Fernando Teixeira">
                                Fernando Teixeira
                            </label></li>

                            <li><label>
                                <input type="checkbox" name="ckFruta[]" checked value="Mariangela Silva">
                                Mariangela Silva
                            </label></li></ol>
                            
                            <br><br>
                            
                            <br>
                            <button class="btn btn-success" type="submit" name="btnSubmiti"> Salvar </button>
                            <button class="btn btn-primary" type="submit" name="btnSubmiti"> Confirmar </button>
                        </form>
<!-- aqui em forma de form onde envia -->
Preciso saber se consigo salvar os checkboxes marcados sem ter que enviar, pois existem atrasos de alguns e quando volta se salvar some tudo. Veja que deixei checado, pois tiro quem não veio, mas não é isso que quero. Quero deixar a lista salva e quando sair da página ficar salvo. Depois que completar posso enviar


<!-- aqui onde recebe -->
<?php

//Declaramos a variável que vai receber o conteúdo da lista
$frutas = null;

//Verificamos se o índice existe
if (isset($_POST['ckFruta']))

    //Atribuimos a variável todo conteúdo do índice
    $frutas = $_POST['ckFruta'];

//Verificamos se a variável não é nula
if ($frutas !== null)

    //Percorremos todos os conteúdos do array
    for ($i = 0; $i < count($frutas); $i++)
    
        //exibimos o valor atual na tela
        echo "<p style='color:#56ab2f;'>{$frutas[$i]}</p>";


/**
 * Recebe um parâmetro e exibe o seu conteúdo
 *
 * @param  mixed $param
 * @return void
 */
function dd($param)
{
    echo '<pre>';
    print_r($param);
    echo '</pre>';
    die();
}
?>

Aqui, nessa parte, preciso numerar os nomes salvos...

Alguém pode me ajudar ou me dar umas dicas?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Olá!
Não entendi muito bem qual o problema q se pretende resolver.
Mas imagino duas soluções para a especificidade supracitada.
1) Frontend: salvar(a cada change no form) em localstorage (no browser que se está usando)
2) Backend: salvar(a cada change no form, via ajax) no seu database, com um status de incomplete. Que só seria alterado depois de de efetivamente salvar. 

Link para o comentário
Compartilhar em outros sites

  • 0

Isso daí é bem difícil. Eu usei um vetor, eu acho que você não vai gostar, assim decidi só resolver o problema de "salvar" a lista de presença. Se você não gostar da minha solução, pelo menos eu não terei perdido o tempo para salvar a lista no banco de dados.

astudy.php
-------------------------------------------------------------

<form id=frmg method=post><input type=hidden id=inpg name=status><form>
<?php
session_start();
if (!isset($_SESSION['lista'])){
	$lista=["Fernando Teixeira"=>0,"Mariangela Silva"=>0];
	$_SESSION['lista']=$lista;} else {
		$lista=$_SESSION['lista'];}
if (isset($_POST['status'])){
	$lista=$_SESSION['lista'];
	$nome=$_POST['status'];
	if ($lista[$nome]==0){$lista[$nome]=1;} else {$lista[$nome]=0;}
	$_SESSION['lista']=$lista;}
echo "<table>";
foreach ($lista as $nome=>$presente){
	if ($presente==1) {$status="checked";}
	if ($presente==0) {$status="";}
	echo "<tr><td><label><input type=checkbox value='$nome'  $status oninput=inpg.value=value;frmg.submit()>$nome</label></form>";}
echo "</table>";
echo "<a href='astudy2.php'>Navegue para outra página</a>";


astudy2.php
--------------------------------------------------
<?php
echo "São Paulo é o melhor time de toda a galáxia!";
echo "<a href='astudy.php'>Voltar para a página anterior</a>"
?>

Para quem estiver acompanhando esse tópico, eu posso explicar que não usei o <form> em torno dos chekbox porque levei cinco horas, e não consegui fazer funcionar. Eu desisti, e criei um outro formulário para me socorrer.

 

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

  • 0
17 horas atrás, wash disse:

Olá!
Não entendi muito bem qual o problema q se pretende resolver.
Mas imagino duas soluções para a especificidade supracitada.
1) Frontend: salvar(a cada change no form) em localstorage (no browser que se está usando)
2) Backend: salvar(a cada change no form, via ajax) no seu database, com um status de incomplete. Que só seria alterado depois de de efetivamente salvar. 

Opa, cara Muito obrigado por responder sobre isso, se puder dar uma olhada no que é o projeto, poderá entender melhor. va até o link test.gelwebradio.site e verá o projeto, está no começo e estou estudando o código do php foi o que enviei antes, mas não vai para lado nenhum, ainda claro, pois ando quebrando a cabeça e fuçando pra todos os lados. Vlw...

4 horas atrás, Frank K Hosaka disse:

Isso daí é bem difícil. Eu usei um vetor, eu acho que você não vai gostar, assim decidi só resolver o problema de "salvar" a lista de presença. Se você não gostar da minha solução, pelo menos eu não terei perdido o tempo para salvar a lista no banco de dados.

astudy.php
-------------------------------------------------------------

<form id=frmg method=post><input type=hidden id=inpg name=status><form>
<?php
session_start();
if (!isset($_SESSION['lista'])){
	$lista=["Fernando Teixeira"=>0,"Mariangela Silva"=>0];
	$_SESSION['lista']=$lista;} else {
		$lista=$_SESSION['lista'];}
if (isset($_POST['status'])){
	$lista=$_SESSION['lista'];
	$nome=$_POST['status'];
	if ($lista[$nome]==0){$lista[$nome]=1;} else {$lista[$nome]=0;}
	$_SESSION['lista']=$lista;}
echo "<table>";
foreach ($lista as $nome=>$presente){
	if ($presente==1) {$status="checked";}
	if ($presente==0) {$status="";}
	echo "<tr><td><label><input type=checkbox value='$nome'  $status oninput=inpg.value=value;frmg.submit()>$nome</label></form>";}
echo "</table>";
echo "<a href='astudy2.php'>Navegue para outra página</a>";


astudy2.php
--------------------------------------------------
<?php
echo "São Paulo é o melhor time de toda a galáxia!";
echo "<a href='astudy.php'>Voltar para a página anterior</a>"
?>

Para quem estiver acompanhando esse tópico, eu posso explicar que não usei o <form> em torno dos chekbox porque levei cinco horas, e não consegui fazer funcionar. Eu desisti, e criei um outro formulário para me socorrer.

Cara, você foi super 1000 com isso, pois vou verificar bem tranquilo amanhã, pois estarei de folga. dá uma olhada no início do que pode ser um grande projeto, claro que não sei nada de nada nos códigos, mas não desisto, vlw d+

 

7 minutos atrás, gelrodrigues disse:

Opa, cara Muito obrigado por responder sobre isso, se puder dar uma olhada no que é o projeto, poderá entender melhor. va até o link test.gelwebradio.site e verá o projeto, está no começo e estou estudando o código do php foi o que enviei antes, mas não vai para lado nenhum, ainda claro, pois ando quebrando a cabeça e fuçando pra todos os lados. Vlw...

test.gelwebradio.site

 

Link para o comentário
Compartilhar em outros sites

  • 0

Eu vi o site e contei 198 pessoas distribuídos por 14 setores. Fazer 198 checkbox não é mole não.

Ao invés de 198 checkbox, estava pensando em não fazer nenhum.

tbentrada
--------------------------------------
id         int pk nn ai
codpessoa  int
entrada    datetime

tbfuncao
--------------------------------------
codfuncao int pk nn ai
funcao    varchar(45)

tbpessoa
-------------------------------------
codpessoa int pk nn ai
codfuncao int
nome      varchar(45)

vw_horario
--------------------------------------
CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `root`@`localhost` 
    SQL SECURITY DEFINER
VIEW `vw_horario` AS
    SELECT 
        `tbentrada`.`entrada` AS `entrada`,
        `tbpessoa`.`nome` AS `nome`,
        `tbpessoa`.`codpessoa` AS `codpessoa`,
        `tbfuncao`.`funcao` AS `funcao`
    FROM
        ((`tbpessoa`
        JOIN `tbfuncao` ON ((`tbpessoa`.`codfuncao` = `tbfuncao`.`codfuncao`)))
        JOIN `tbentrada` ON ((`tbpessoa`.`codpessoa` = `tbentrada`.`codpessoa`)))
    ORDER BY `tbentrada`.`entrada` DESC

vw_pessoa
-----------------------------------------------------
CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `root`@`localhost` 
    SQL SECURITY DEFINER
VIEW `vw_pessoa` AS
    SELECT 
        `tbpessoa`.`codpessoa` AS `codpessoa`,
        `tbpessoa`.`nome` AS `nome`,
        `tbfuncao`.`funcao` AS `funcao`
    FROM
        (`tbpessoa`
        JOIN `tbfuncao` ON ((`tbpessoa`.`codfuncao` = `tbfuncao`.`codfuncao`)))
    ORDER BY `tbpessoa`.`nome`

astudy.php
------------------------------------------------------------------------
<?php
$mysqli=new mysqli("localhost","root","","astudy");
if (isset($_POST['codpessoa'])){
	$codpessoa=$_POST['codpessoa'];
	$query=$mysqli->query("select * from vw_pessoa where codpessoa=$codpessoa");
	$row=$query->fetch_assoc();
	$pessoa=$row['nome'];
	$funcao=$row['funcao'];
	echo $pessoa." : setor ".$funcao;
	echo "<p><form method=post action=astudy2.php><input type=submit value=Confirmar><input type=hidden name=confirmar value=$codpessoa></form>";
	exit;}
echo "<form method=post><label>Código da Pessoa <input name=codpessoa></label></form>"; 
echo "<p>Últimas entradas</p>";
echo "<table><tr><th>Nome<th>Matric.<th>Horário";
$query=$mysqli->query("select * from vw_horario limit 10");
while ($row=$query->fetch_assoc()){
	echo "<tr><td>".$row['nome'];
	echo "<td>".$row['codpessoa'];
	echo "<td>".$row['funcao'];
	echo "<td>".$row['entrada'];}
echo "</table>";

astudy2.php
---------------------------------------------------------------------------
<?php
$mysqli=new mysqli("localhost","root","","astudy");
$codpessoa=$_POST['confirmar'];
date_default_timezone_set('America/Sao_Paulo');
$horario=date("Y-m-d H:i:s");
$query=$mysqli->query("insert into tbentrada set codpessoa=$codpessoa, entrada='$horario'");
header("location:astudy.php");

 

Sem título.png

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

  • 1
12 horas atrás, Frank K Hosaka disse:

Eu vi o site e contei 198 pessoas distribuídos por 14 setores. Fazer 198 checkbox não é mole não.

Ao invés de 198 checkbox, estava pensando em não fazer nenhum.

tbentrada
--------------------------------------
id         int pk nn ai
codpessoa  int
entrada    datetime

tbfuncao
--------------------------------------
codfuncao int pk nn ai
funcao    varchar(45)

tbpessoa
-------------------------------------
codpessoa int pk nn ai
codfuncao int
nome      varchar(45)

vw_horario
--------------------------------------
CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `root`@`localhost` 
    SQL SECURITY DEFINER
VIEW `vw_horario` AS
    SELECT 
        `tbentrada`.`entrada` AS `entrada`,
        `tbpessoa`.`nome` AS `nome`,
        `tbpessoa`.`codpessoa` AS `codpessoa`,
        `tbfuncao`.`funcao` AS `funcao`
    FROM
        ((`tbpessoa`
        JOIN `tbfuncao` ON ((`tbpessoa`.`codfuncao` = `tbfuncao`.`codfuncao`)))
        JOIN `tbentrada` ON ((`tbpessoa`.`codpessoa` = `tbentrada`.`codpessoa`)))
    ORDER BY `tbentrada`.`entrada` DESC

vw_pessoa
-----------------------------------------------------
CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `root`@`localhost` 
    SQL SECURITY DEFINER
VIEW `vw_pessoa` AS
    SELECT 
        `tbpessoa`.`codpessoa` AS `codpessoa`,
        `tbpessoa`.`nome` AS `nome`,
        `tbfuncao`.`funcao` AS `funcao`
    FROM
        (`tbpessoa`
        JOIN `tbfuncao` ON ((`tbpessoa`.`codfuncao` = `tbfuncao`.`codfuncao`)))
    ORDER BY `tbpessoa`.`nome`

astudy.php
------------------------------------------------------------------------
<?php
$mysqli=new mysqli("localhost","root","","astudy");
if (isset($_POST['codpessoa'])){
	$codpessoa=$_POST['codpessoa'];
	$query=$mysqli->query("select * from vw_pessoa where codpessoa=$codpessoa");
	$row=$query->fetch_assoc();
	$pessoa=$row['nome'];
	$funcao=$row['funcao'];
	echo $pessoa." : setor ".$funcao;
	echo "<p><form method=post action=astudy2.php><input type=submit value=Confirmar><input type=hidden name=confirmar value=$codpessoa></form>";
	exit;}
echo "<form method=post><label>Código da Pessoa <input name=codpessoa></label></form>"; 
echo "<p>Últimas entradas</p>";
echo "<table><tr><th>Nome<th>Matric.<th>Horário";
$query=$mysqli->query("select * from vw_horario limit 10");
while ($row=$query->fetch_assoc()){
	echo "<tr><td>".$row['nome'];
	echo "<td>".$row['codpessoa'];
	echo "<td>".$row['funcao'];
	echo "<td>".$row['entrada'];}
echo "</table>";

astudy2.php
---------------------------------------------------------------------------
<?php
$mysqli=new mysqli("localhost","root","","astudy");
$codpessoa=$_POST['confirmar'];
date_default_timezone_set('America/Sao_Paulo');
$horario=date("Y-m-d H:i:s");
$query=$mysqli->query("insert into tbentrada set codpessoa=$codpessoa, entrada='$horario'");
header("location:astudy.php");

 

Sem título.png

Ó honorável GURU, cara, você é mestre. Prestativo e Super Humano... Sei que consigo realizar isso, porém estou procurando alguém que me ensine a codar esses tipos de códigos, pois o que faça é fuçar sem parar, adpto coisas em html, php e até java, porém não consigo criar, mas consigo alterar alguns códigos abertos. Você teria disponibilidade de me ensinar via remoto, e se puder qual seria seu valor???

Link para o comentário
Compartilhar em outros sites

  • 0

Meu honorável GAFANHOTO, eu também sou um programador eventual. Durante dois anos eu usei uma gigantesca biblioteca chamada JQuery só para usar o calendário no meu projeto. Não sei se foi o Ios ou o Wash, mas um deles me informou que o HTML tem o <input type=date> que faz o mesmo serviço. Joguei fora o JQuery, e consegui reduzir o meu código menu.php em 50%.

Ou seja, o Ios e o Wash conseguiram provar que eu sei apenas 2% de HTML. Para cobrar coisa do tipo R$ 1.212,00 por mês (mais vale transporte, vale refeição), eu precisaria de 3% para credenciar o meu currículo. O Ios e o Wash já desistiram de alertar que eu sou um péssimo exemplo no forum. Um codificador profissional e respeitável, ele sempre escreve <tr><th>cabeçalho</th></tr>, mas como eu tenho uma tremenda preguiça eu só escrevo <tr><th>cabeçalho. Ou seja, eu só fecho o marcador, quando vejo que a coisa não funciona mesmo. Enfim, eu sou um péssimo exemplo mesmo.

Mesmo assim, eu posso tentar. Basta escrever para frankhosaka@gmail.com - mas para aprender a codificar de verdade, você tem que buscar alguém que entenda pelo menos 3% de HTML. Eu só tenho 2%, e faço tudo na famosa base da tentativa e erro.

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...