Etiqueta Posted June 28, 2012 at 11:54 AM Report #466136 Posted June 28, 2012 at 11:54 AM Boa tarde, nem sei bem em que secção hei-de colocar esta dúvida. estou a desenvolver um registo de horas de funcionários. Neste momento tenho 3 inputs para colocar o dia, mes e ano respectivamente para a data inicial e mais 3 para a data final e de seguida é gerada uma tabela com a listagem de dias por linha da tabela. O que pretendo fazer é limitar o conteudo da tabela, ou seja, aparecer desde da data inical à data final, em vez de aparecer o mesmo todo. http://alojaimagens.com/viewer.php?file=u0n21l0vx7yb0si6oft.jpg http://alojaimagens.com/viewer.php?file=f46whq5k03obwg1326u9.jpg aqui fica o código: <?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd%22> <html xmlns="http://www.w3.org/1999/xhtml%22> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> Registo de Horas</title> <link rel="icon" type="image/x-icon" href="img/favicon.jpg" /> <link href="css/header.css" rel="stylesheet" type="text/css" /> <link href="css/RegistoHoras.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="JS/teste.js"></script> </head> <body> <div id="container"> <div id="header"> <img border="0" src="img/barra_nsemprega.png" /> </div> <?php include 'conexao.php'; //Recebe os dados do formulário $DataInicio = strip_tags(trim($_POST['diaInicio'])) + strip_tags(trim($_POST['mesInicio'])) + strip_tags(trim($_POST['anoInicio'])); $DataFim = strip_tags(trim($_POST['diaFinal'])) + strip_tags(trim($_POST['mesFinal'])) + strip_tags(trim($_POST['anoFinal'])); $sql = "SELECT * FROM funcionario WHERE DataInicio = '$DataInicio' AND DataFim = '$DataFim'"; $rs = mysql_query($sql); if(mysql_num_rows($rs) == 1) { $user = mysql_fetch_array($rs); $_SESSION["DataInicio"] = $DataInicio; $_SESSION["DataFim"] = $DataFim; } ?> <form name="f" action="javascript: var dia=Number(document.f.diaInicio.value); var ano=Number(document.f.anoInicio.value); var mes=Number(document.f.mesInicio.value); gerarCalendarioMensal (ano, mes); document.close(); "> <table> <tr> <td><label>Data de inicio</td> <td><input type="text" name="diaInicio" value="1" size="4"/>/ <input type="text" name="mesInicio" value="6" size="4" />/ <input type="text" name="anoInicio" value="2012" size="4"/> </label></td> </tr> <tr> <td><label>Data de fim</td> <td><input type="text" name="diaFinal" value="31" size="4"/>/ <input type="text" name="mesFinal" value="6" size="4"/>/ <input type="text" name="anoFinal" value="2012" size="4"/> </label></td> </tr> <tr> <td></td> <td><input type="submit" id="dados" name="dados_enviar" value="Ver"/></td> </tr> </table> </form> </div> </div> </body> </html> MESES=["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"]; function bissexto(ano){ return (ano%400==0)||((ano%4==0)&&(ano%100!=0));} function dateToString(d){ var MM=["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"]; var yyyy=d.getFullYear(), mm=MM[d.getMonth()];//+1 var dd=d.getDate(); if(mm<10) mm="0"+mm; if (dd<10) dd="0"+dd; return dd+"-"+mm; }//dateToString function diaSemanal(d){ var DDS=["domingo", "segunda-feira", "terca-terça", "quarta-feira", "quinta-feira", "sexta-feira", "sabado"]; var dd=d.getDate(), dds=DDS[d.getDay()]; if (dd<10) dd="0"+dd; return dds; }//dateToString var IMPOSSIVEL=-1; function numeroDiasNoMes(mes, ano){ if (mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12) return 31; else if (mes==4 || mes==6 || mes==9 || mes==11) return 30; else if (mes==2) return bissexto(ano)? 29:28; else return IMPOSSIVEL; }//numeroDiasNoMes function gerarCalendarioMensal(anoInicio, mesInicio){ var dia=new Date(ano, mes-1, 1); //primeiro dia do mes var limite=numeroDiasNoMes(mes, ano); //28, 29, 30, 31 document.write("<div id='container'>"); document.write("<div id='registoH'>"); document.write("<form name='f_criarRegistoH' id='f_criarRegistoH_' method='post' action='' enctype='multipart/form-data'>"); document.write("<table border='1'>"); document.write("<tr align='center'>"); document.write("<td style='width: 85px;'><p><b>Data</b></td>"); document.write("<td style='width: 85px;'><p><b>Dia</b></td>"); document.write("<td style='width: 85px;'><p><b>Entrada</b></td>"); document.write("<td style='width: 85px;'><p><b>Saída</b></td>"); document.write("<td style='width: 85px;'><b>Horas Normais</b></td>"); document.write("<td style='width: 85px;'><b>Horas Turno</b></td>"); document.write("<td style='width: 85px;'><b>Feriado / 100%</b></td>"); document.write("<td style='width: 85px;'><b>Faltas</b></td>"); document.write("</tr>"); document.write("<?php"); document.write("require 'conexao.php';"); document.write("$DataInicio = $_POST['DataInicio'];"); document.write("$DataFim = $_POST['DataFim'];"); document.write("$sql = mysql_query('SELECT * FROM linha');"); //Data é da tabela Linha - tenho que fazer um INNER JOIN (SELECT funcionario.Id_Funcionario, funcionario.DataInicio, funcionario.DataFim, linha.Id_Linha, linha.Data FROM funcionario INNER JOIN linha ON funcionario.Id_Funcionario = linha.Id_Linha WHERE linha.Data >= '$DataInicio' AND linha.Data <= '$DataFim' ORDER BY linha.Data) //SELECT * FROM funcionario WHERE Data >= '$DataInicio' AND Data <= '$DataFim' ORDER Data document.write("while($rs = mysql_fetch_array($sql)){"); document.write("$Data = $rs['Data'];"); document.write("$Dia = $rs['Dia'];"); document.write("$HEntrada = $rs['HEntrada'];"); document.write("$HSaida = $rs['HSaida'];"); document.write("$HoraTurno = $rs['HoraTurno'];"); document.write("$HoraNormal = $rs['HoraNormal'];"); document.write("}"); document.write("?>"); document.write("<?php if(!isset($_SESSION['DataInicio'] < $_SESSION['DataFim'] )){ ?>"); for (var contador=1; contador<=limite; contador++){ fraseParaODia=dateToString (dia); fraseParaSemana=diaSemanal(dia); if (dia.getDate()==1) /*document.write("<h1>"+MESES[dia.getMonth()]+"</h1>"); */ //document.write(fraseParaODia+"<br>"); document.write("<br>"); document.write("<tr style='text-align: center;'>"); document.write("<td style='width: 104px;'>"); document.write(fraseParaODia+"<br>"); document.write("</td>"); document.write("<td style='width: 104px;'>"); document.write(fraseParaSemana+"<br>"); document.write("</td>"); document.write("<td style='width: 104px;'><input name='HEntrada' type='text' id='HEntrada' placeholder='Hora de entrada' style='width: 104px;'/></td>"); document.write("<td style='width: 104px;'><input name='HSaida' type='text' id='HSaida' placeholder='Hora de saída' style='width: 104px;'/></td>"); document.write("<td style='width: 104px;'><input name='HoraTurno' type='text' id='HoraTurno' placeholder='Horas de turno' style='width: 104px;'/></td>"); document.write("<td style='width: 104px;'><input name='HoraNormal' type='text' id='HoraNormal' placeholder='Horas normais' style='width: 104px;'/></td>"); document.write("<td style='width: 104px;'><input name='NumHorasFeriado' type='text' id='NumHorasFeriado' placeholder='Horas do feriado' style='width: 104px;'/></td>"); document.write("<td style='width: 104px;'><input name='NumHorasFalta' type='text' id='NumHorasFalta' placeholder='Horas de faltas' style='width: 104px;'/></td>"); document.write("</tr>"); dia.setDate(dia.getDate()+1); document.write("<?php } ?>"); }//for document.write("</table>"); document.write("<br>"); document.write("<table>"); document.write("<tr>"); document.write("<td class='campos'>Prémio Produtividade:"); document.write("</td>"); document.write("<td>"); document.write("<input name='PremioP' type='text' id='PremioP' placeholder='Digite o valor'/>€"); document.write("</td>"); document.write("</tr>"); document.write("</table>"); document.write("</form>"); document.write("<input type='submit' name='buttonRegistoHoras' id='buttonRegistoHoras' value='Guardar' />"); document.write("</div>"); document.write("</div>"); }//gerarCalendarioMensal podem dar-me uma ajudinha? desde já, muito obrigada Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com
HappyHippyHippo Posted June 28, 2012 at 12:05 PM Report #466141 Posted June 28, 2012 at 12:05 PM olha para o teu código: $DataInicio = strip_tags(trim($_POST['diaInicio'])) + strip_tags(trim($_POST['mesInicio'])) + strip_tags(trim($_POST['anoInicio'])); $DataFim = strip_tags(trim($_POST['diaFinal'])) + strip_tags(trim($_POST['mesFinal'])) + strip_tags(trim($_POST['anoFinal'])); $sql = "SELECT * FROM funcionario WHERE DataInicio = '$DataInicio' AND DataFim = '$DataFim'"; agora imagina que : diaInicio = 1 mesInicio = 1 anoInicio = 2000 diaFinal = 31 mesFinal = 12 anoFinal = 2000 o SQL criado será SELECT * FROM funcionario WHERE DataInicio = '112000' AND DataFim = '31122000'"; isto não parece muito bem pois não ?? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Etiqueta Posted June 28, 2012 at 01:53 PM Author Report #466163 Posted June 28, 2012 at 01:53 PM (edited) substitui os "+" por ."/". Obrigada. Como é limito o calendário pela data inical e final? já fiz function gerarCalendarioMensal(ano, mes){ var dia=document.write("<?php $_SESSION['DataInicio']; ?> "); //primeiro dia do mes var limite=document.write("<?php$_SESSION['DataFim']; ?> "); mas continua sem dar Edited June 28, 2012 at 01:53 PM by Etiqueta Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com
HappyHippyHippo Posted June 28, 2012 at 01:56 PM Report #466164 Posted June 28, 2012 at 01:56 PM epa ... a olhar para isso parece que andas a misturar javascript com php ... o limitar por SQL é usando os operadores ">=" e "<=" ... agora o que tens não percebo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Etiqueta Posted June 28, 2012 at 03:36 PM Author Report #466213 Posted June 28, 2012 at 03:36 PM (edited) passei o ficheiro javascript para php. ficou assim: <?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd%22> <html xmlns="http://www.w3.org/1999/xhtml%22> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Registo de Horas</title> <link rel="icon" type="image/x-icon" href="img/favicon.jpg" /> <link href="css/header.css" rel="stylesheet" type="text/css" /> <link href="css/RegistoHoras.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="container"> <div id="header"> <img border="0" src="img/barra_nsemprega.png" /> </div> <?php include 'conexao.php'; //Recebe os dados do formulário /*$DataInicio = mysql_real_escape_string(strip_tags($_POST["DataInicio"])); $DataFim = mysql_real_escape_string($_POST["DataFim"]);*/ $DataInicio = strip_tags(trim($_POST['diaInicio'])) ."/". strip_tags(trim($_POST['mesInicio'])) ."/". strip_tags(trim($_POST['anoInicio'])); $DataFim = strip_tags(trim($_POST['diaFinal'])) ."/". strip_tags(trim($_POST['mesFinal'])) ."/". strip_tags(trim($_POST['anoFinal'])); $sql = "SELECT * FROM funcionario WHERE DataInicio = '$DataInicio' <= DataFim = '$DataFim'"; $rs = mysql_query($sql); if(mysql_num_rows($rs) == 1) { $user = mysql_fetch_array($rs); $_SESSION["DataInicio"] = $DataInicio; $_SESSION["DataFim"] = $DataFim; } ?> <form name="f" action="teste.php"> <table> <tr> <td><label>Data de inicio</td> <td><input type="text" name="diaInicio" value="1" size="4"/>/ <input type="text" name="mesInicio" value="6" size="4" />/ <input type="text" name="anoInicio" value="2012" size="4"/> </label></td> </tr> <tr> <td><label>Data de fim</td> <td><input type="text" name="diaFinal" value="31" size="4"/>/ <input type="text" name="mesFinal" value="6" size="4"/>/ <input type="text" name="anoFinal" value="2012" size="4"/> </label></td> </tr> <tr> <td></td> <td><input type="submit" id="dados" name="dados_enviar" value="Ver"/></td> </tr> </table> </form> </div> </div> </body> </html> teste.php: <?php $MESES=array("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"); function bissexto($ano){ return ($ano%400==0)||(($ano%4==0)&&($ano%100!=0));} function dateToString($d){ $MM=array("Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"); $yyyy=strip_tags(trim($_POST['anoInicio'])); $mm=$MM[strip_tags(trim($_POST['mesInicio']))]; $dd=$d.date(); if($mm<10) $mm="0"+$mm; if ($dd<10) $dd="0"+$dd; return $dd+"-"+$mm; }//dateToString function diaSemanal($d){ $DDS=array("domingo", "segunda-feira", "terca-terça", "quarta-feira", "quinta-feira", "sexta-feira", "sabado"); $dd=$d.date(); $dds=$DDS[strip_tags(trim($_POST['diaInicio']))]; if ($dd<10) $dd="0"+$dd; return $dds; }//dateToString $IMPOSSIVEL=-1; function numeroDiasNoMes($mes, $ano){ if ($mes==1 || $mes==3 || $mes==5 || $mes==7 || $mes==8 || $mes==10 || $mes==12) return 31; else if ($mes==4 || $mes==6 || $mes==9 || $mes==11) return 30; else if ($mes==2) return bissexto(ano)? 29:28; else return $IMPOSSIVEL; }//numeroDiasNoMes function gerarCalendarioMensal($ano, $mes){ $dia=new date($ano, $mes-1, 1); //primeiro dia do mes $limite=$numeroDiasNoMes($mes, $ano); //28, 29, 30, 31 echo "<table>"; echo "<tr>"; echo "<td>"; echo "<table>"; echo "<tr>"; echo "<td><b>Trabalhador Temporário</b></td>"; echo "</tr>"; echo "<tr>"; echo "<td>Nome:</td>"; echo "<td>select</td>"; echo "</tr>"; echo "<tr>"; echo "<td>Categoria:</td>"; echo "<td>select</td>"; echo "</tr>"; echo "<tr>"; echo "<td>Período de Trabalho:</td>"; echo "<td>DataInicio + DataFim</td>"; echo "</tr>"; echo "</table>"; echo "</td>"; echo "<td>"; echo "<table>"; echo "<tr>"; echo "<td><b>Empresa Cliente</b></td>"; echo "</tr>"; echo "<tr>"; echo "<td>Ciente:</td>"; echo "<td>select</td>"; echo "</tr>"; echo "<tr>"; echo "<td>Contribuinte:</td>"; echo "<td>select</td>"; echo "</tr>"; echo "<tr>"; echo "<td>Ano:</td>"; echo "<td>select</td>"; echo "</tr>"; echo "</table>"; echo "</td>"; echo "</tr>"; echo "</table>"; echo "</div>"; echo "<div id='registoH'>"; echo "<form name='f_criarRegistoH' id='f_criarRegistoH_' method='post' action='' enctype='multipart/form-data'>"; echo "<table border='1'>"; echo "<tr align='center'>"; echo "<td style='width: 85px;'><p><b>Data</b></td>"; echo "<td style='width: 85px;'><p><b>Dia</b></td>"; echo "<td style='width: 85px;'><p><b>Entrada</b></td>"; echo "<td style='width: 85px;'><p><b>Saída</b></td>"; echo "<td style='width: 85px;'><b>Horas Normais</b></td>"; echo "<td style='width: 85px;'><b>Horas Turno</b></td>"; echo "<td style='width: 85px;'><b>Feriado / 100%</b></td>"; echo "<td style='width: 85px;'><b>Faltas</b></td>"; echo "</tr>"; require 'conexao.php'; $DataInicio = $_POST['DataInicio']; $DataFim = $_POST['DataFim']; $sql = mysql_query('SELECT * FROM linha'); //SELECT * FROM funcionario WHERE Data >= '$DataInicio' AND Data <= '$DataFim' ORDER Data while($rs = mysql_fetch_array($sql)){ $Data = $rs['Data']; $Dia = $rs['Dia']; $HEntrada = $rs['HEntrada']; $HSaida = $rs['HSaida']; $HoraTurno = $rs['HoraTurno']; $HoraNormal = $rs['HoraNormal']; } if((isset($_SESSION['DataInicio'])) < (isset($_SESSION['DataInicio']))){ for ($contador=1; $contador<=$limite; $contador++){ $fraseParaODia=dateToString($dia); $fraseParaSemana=diaSemanal($dia); if ($dia.date()==1) echo "<br>"; echo "<tr style='text-align: center;'>"; echo "<td style='width: 104px;'>"; $fraseParaODia; echo "<br>"; echo "</td>"; echo "<td style='width: 104px;'>"; $fraseParaSemana; echo "<br>"; echo "</td>"; echo "<td style='width: 104px;'><input name='HEntrada' type='text' id='HEntrada' placeholder='Hora de entrada' style='width: 104px;'/></td>"; echo "<td style='width: 104px;'><input name='HSaida' type='text' id='HSaida' placeholder='Hora de saída' style='width: 104px;'/></td>"; echo "<td style='width: 104px;'><input name='HoraTurno' type='text' id='HoraTurno' placeholder='Horas de turno' style='width: 104px;'/></td>"; echo "<td style='width: 104px;'><input name='HoraNormal' type='text' id='HoraNormal' placeholder='Horas normais' style='width: 104px;'/></td>"; echo "<td style='width: 104px;'><input name='NumHorasFeriado' type='text' id='NumHorasFeriado' placeholder='Horas do feriado' style='width: 104px;'/></td>"; echo "<td style='width: 104px;'><input name='NumHorasFalta' type='text' id='NumHorasFalta' placeholder='Horas de faltas' style='width: 104px;'/></td>"; echo "</tr>"; $dia.setDate($dia.getDate()+1); } }//for echo "</table>"; echo "<br>"; echo "<table>"; echo "<tr>"; echo "<td class='campos'>Prémio Produtividade:"; echo "</td>"; echo "<td>"; echo "<input name='PremioP' type='text' id='PremioP' placeholder='Digite o valor'/>€"; echo "</td>"; echo "</tr>"; echo "</table>"; echo "</form>"; echo "<input type='submit' name='buttonRegistoHoras' id='buttonRegistoHoras' value='Guardar' />"; echo "</div>"; echo "</div>"; }//gerarCalendarioMensal ?> na url passa os valores mas a página fica em branco Edited June 28, 2012 at 03:37 PM by Etiqueta Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com
HappyHippyHippo Posted June 28, 2012 at 03:38 PM Report #466217 Posted June 28, 2012 at 03:38 PM php <-> javascript porque sempre esta confusão ??? http://pt.wikipedia.org/wiki/PHP http://pt.wikipedia.org/wiki/JavaScript http://pt.wikipedia.org/wiki/Server-side http://pt.wikipedia.org/wiki/Client_Side IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Etiqueta Posted June 28, 2012 at 03:45 PM Author Report #466223 Posted June 28, 2012 at 03:45 PM (edited) qual foi a ideia que quiseste passar? não percebi. o que aparece na url ".../teste.php?diaInicio=16&mesInicio=6&anoInicio=2012&diaFinal=31&mesFinal=6&anoFinal=2012&dados_enviar=Ver" Edited June 28, 2012 at 07:37 PM by Etiqueta Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com
Etiqueta Posted June 29, 2012 at 12:05 PM Author Report #466414 Posted June 29, 2012 at 12:05 PM podem ajudar-me sff? Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com
Etiqueta Posted July 2, 2012 at 09:12 PM Author Report #466917 Posted July 2, 2012 at 09:12 PM o que pretendo fazer é escolher uma data inicial e outra final e gerar um calendário. Exemplo: DataInicio=10/06/2012 DataFim= 20/06/2012 Resultado: 10/06/2012 11/06/2012 12/06/2012 13/06/2012 14/06/2012 15/06/2012 16/06/2012 17/06/2012 18/06/2012 19/06/2012 20/06/2012 podem ajudar-me? Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com
HappyHippyHippo Posted July 2, 2012 at 10:55 PM Report #466938 Posted July 2, 2012 at 10:55 PM o limitar por SQL é usando os operadores ">=" e "<=" IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Etiqueta Posted July 3, 2012 at 08:46 AM Author Report #466969 Posted July 3, 2012 at 08:46 AM esta data que quero gerar não está na base de dados. Não pretendo fazer um filtro ou pesquisa Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com
brunoais Posted July 3, 2012 at 11:15 AM Report #466983 Posted July 3, 2012 at 11:15 AM Põe aí um código legível e bem indentado que eu dou uma ajuda. Para além disso, mostra exemplo da mecânica do sistema que queres (o que o utilizdador faz (inclui o js) e o que o servidor faz). "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
HappyHippyHippo Posted July 3, 2012 at 11:33 AM Report #466987 Posted July 3, 2012 at 11:33 AM O que pretendo fazer é limitar o conteudo da tabela, ou seja, aparecer desde da data inical à data final, em vez de aparecer o mesmo todo. esta data que quero gerar não está na base de dados. Não pretendo fazer um filtro ou pesquisa eu até ajudava, mas ou não sabes te explicar ou não sabes o que queres ... afinal queres listar todos as entradas na base de dados dentro das duas datas ou queres simplesmente ignorar o que tens na base de dados e apresentar n linhas com das datas consecutivas entre as duas datas ??? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Etiqueta Posted July 3, 2012 at 02:43 PM Author Report #467019 Posted July 3, 2012 at 02:43 PM como tenho o código actualmente: <form name="f1" action="RegistaHoras.php"> <table> <tr> <td><label>Data de inicio</td> <td><input type="text" name="diaInicio" value="1" size="4"/>/ <input type="text" name="mesInicio" value="6" size="4" />/ <input type="text" name="anoInicio" value="2012" size="4"/> </label></td> </tr> <tr> <td><label>Data de fim</td> <td><input type="text" name="diaFinal" value="31" size="4"/>/ <input type="text" name="mesFinal" value="6" size="4"/>/ <input type="text" name="anoFinal" value="2012" size="4"/> </label></td> </tr> <tr> <td></td> <td><input type="submit" id="dados" name="dados_enviar" value="Registar"/></td> </tr> </table> </form> RegistaHoras.php <?php function bissexto($ano) { return ($ano % 400 == 0) || (($ano % 4 == 0) && ($ano % 100 != 0)); } function dateToString($d) { $MM = array( "Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez" ); $yyyy = strip_tags(trim($_GET['anoInicio'])); $mm = $MM[strip_tags(trim($_GET['mesInicio']))]; //+1 $dd = date($d); //$d.date(); if ($mm < 10) $mm = "0" + $mm; if ($dd < 10) $dd = "0" + $dd; return $dd + "-" + $mm; } //dateToString function mesToString($mes) { $MM = array( "Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez" ); return $MM[$mes - 1]; } function diaSemanal($date) { $dds = array( "domingo", "segunda-feira", "terca-terça", "quarta-feira", "quinta-feira", "sexta-feira", "sabado" ); $dd = date('w', strtotime($date)); return $dds[$dd]; } //dateToString $IMPOSSIVEL = -1; function numeroDiasNoMes($mes, $ano) { if ($mes == 1 || $mes == 3 || $mes == 5 || $mes == 7 || $mes == 8 || $mes == 10 || $mes == 12) return 31; else if ($mes == 4 || $mes == 6 || $mes == 9 || $mes == 11) return 30; else if ($mes == 2) return bissexto(ano) ? 29 : 28; else return $IMPOSSIVEL; } //numeroDiasNoMes function gerarCalendarioMensal($ano, $mes) { $dia = 1; //date($ano, $mes-1, 1); //primeiro dia do mes $limite = numeroDiasNoMes($mes, $ano); //28, 29, 30, 31 echo "<div id='registoH'>"; echo "<form name='f_criarRegistoH' id='f_criarRegistoH_' method='post' action='' enctype='multipart/form-data'>"; echo "<table border='1'>"; echo "<tr align='center'>"; echo "<td style='width: 85px;'><p><b>Data</b></td>"; echo "<td style='width: 85px;'><p><b>Dia</b></td>"; echo "<td style='width: 85px;'><p><b>Entrada</b></td>"; echo "<td style='width: 85px;'><p><b>Saída</b></td>"; echo "<td style='width: 85px;'><b>Horas Normais</b></td>"; echo "<td style='width: 85px;'><b>Horas Turno</b></td>"; echo "<td style='width: 85px;'><b>Feriado / 100%</b></td>"; echo "<td style='width: 85px;'><b>Faltas</b></td>"; echo "</tr>"; require 'conexao.php'; for ($contador = $_GET['diaInicio']; $contador <= $limite; $contador++) { //$_GET['diaFinal'] $currentData = $_GET['anoInicio'] . '-' . $_GET['mesInicio'] . '-' . $contador; $mes = mesToString($_GET['mesInicio']); $fraseParaODia = diaSemanal($currentData); ; echo "<tr style='text-align: center;'>"; echo "<td style='width: 104px;'>"; echo $contador + '-' + $mes; echo "</td>"; echo "<td style='width: 104px;'>"; echo $fraseParaODia; echo "</td>"; echo "<td style='width: 104px;'><input name='HEntrada$contador' type='text' id='HEntrada' placeholder='Hora de entrada' style='width: 104px;'/></td>"; echo "<td style='width: 104px;'><input name='HSaida$contador' type='text' id='HSaida' placeholder='Hora de saída' style='width: 104px;'/></td>"; echo "<td style='width: 104px;'><input name='HoraTurno$contador' type='text' id='HoraTurno' placeholder='Horas de turno' style='width: 104px;'/></td>"; echo "<td style='width: 104px;'><input name='HoraNormal$contador' type='text' id='HoraNormal' placeholder='Horas normais' style='width: 104px;'/></td>"; echo "<td style='width: 104px;'><input name='NumHorasFeriado$contador' type='text' id='NumHorasFeriado' placeholder='Horas do feriado' style='width: 104px;'/></td>"; echo "<td style='width: 104px;'><input name='NumHorasFalta$contador' type='text' id='NumHorasFalta' placeholder='Horas de faltas' style='width: 104px;'/></td>"; echo "</tr>"; } echo "</table>"; echo "<br>"; echo "</form>"; echo "<input type='submit' name='buttonRegistoHoras' id='buttonRegistoHoras' value='Guardar' />"; echo "</div>"; } gerarCalendarioMensal($_GET['anoInicio'], $_GET['mesInicio'], $_GET['diaInicio']); ?> já gera o calendário a partir do dia inicial. Falta limitar por data final. O que pode acontecer é colocar-se uma data inicial, 10-06-2012 até à data final 09-07-2012, o que implica ter a listagem do calendário com mais um mês (parte do mês). Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now