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

Calendário de eventos


RS25

Pergunta

Boa tarde,

Fiz o seguinte calendário em php com uma função javascript para avançar os meses e retroceder os meses mas esta dando erro no link de avançar segue o meu código

O código roda mas da um erro na função javascript dizendo que o "." e esperado

<?php
/*
* Classe de visão do módulo de agendamentos
* @autor: Gustavo Rodrigues Torre
* @created 08/07/2010
* @version: 0.0.4
*/

require_once("../modulos/agendamentos/control/cadastro_controller.php");  //Classe contendo o controle
require_once("../app/classes/bd/abstractdb.php"); //Classe abstrata para acesso ao banco 

?>

<style>
.calendario {
     width: 80%;
     border-collapse: collapse;
     border: 1px solid #f0f0f0;
     background-color: #fff;
     text-align: center;
}

.tabela{
   background:#fff;
   width:200px;
   padding:0px;
   border:1px solid #f0f0f0;
   float:left;
   margin-right:20px;
   }

.mes{
   background:#fff;
   width:auto;
   height:20px;
   text-align:center;
   }

caption {
     padding: 5px 0 5px 0;
     font: small-caps bold 11px verdana, arial, tahoma;
     background-color: #999;
     border: 1px solid #333;
}

th {
     background: #F4F4F4;
}

th, td {
     padding: 3px;
}
</style>

<?php

    if(empty($_GET['data'])){
           $dia = date('d');
           $mes = ltrim(date('m'),"0");
           $ano = date('Y');
   }else{
           $data = explode('/',$_GET['data']);
           $dia = $data[0];
           $mes = $data[1];
           $ano = $data[2];
   }
   
   if($mes==1){
           $mes_ant = 12;
           $ano_ant = $ano - 1;
   }else{
           $mes_ant = $mes - 1;
           $ano_ant = $ano;
   }
   
   if($mes==12){
           $mes_prox = 1;
           $ano_prox = $ano + 1;
   }else{
           $mes_prox = $mes + 1;
           $ano_prox = $ano;
   }

     $domingo = "style=color:#C30;";
     $hoje = "style=color:#CC0;";

   $pdianu = mktime(0,0,0,$mes,1,$ano);
   $a = date('D', $pdianu);
     
     function meses($a)  {
              switch($mes.$a) {
                     case 1:  $mes = "janeiro"; break;
                     case 2:  $mes = "fevereiro"; 
                      $bi = $ano % 4;
                           if($bi == 0){
                                   $a = 29;
                           }else{
                                   $a = 28; } break;
                     case 3:  $mes = "março"; break;
                     case 4:  $mes = "abril"; break;
                     case 5:  $mes = "maio";  break;
                     case 6:  $mes = "junho"; break;
                     case 7:  $mes = "julho"; break;
                     case 8:  $mes = "agosto"; break;
                     case 9:  $mes = "setembro"; break;
                     case 10: $mes = "outubro"; break;
                     case 11: $mes = "novembro"; break;
                     case 12: $mes = "dezembro"; break;
              }
              return $mes;
     }
?>

<table border="0" summary="Calendário" class="calendario">
     <caption><center><?php echo "".meses($mes)." ".$ano.""; ?></center></caption>
     <thead>
    
    <?php
        echo '<td class="mes"><a onclick="intLink(\"'.$dia.'/'.$mes_ant.'/'.$ano_ant.'\")"> << </a></td>'; //retrocede o mes
        echo '<td class="mes" colspan="5"></td>'; 
        echo '<td class="mes"><a onclick="intLink?(\''.$dia.'/'.$mes_prox.'/'.$ano_prox.'\')">  >> </a></td>'; //avança o mes
    ?>
    
     <tr>
         <th abbr="Domingo" title="Domingo"><b <?php echo("$domingo");?>>Domingo</b></th>
         <th abbr="Segunda" title="Segunda"><b>Segunda</b></th>
         <th abbr="Terça" title="Terça"><b>Terça</b></th>
         <th abbr="Quarta" title="Quarta"><b>Quarta</b></th>
         <th abbr="Quinta" title="Quinta"><b>Quinta</b></th>
         <th abbr="Sexta" title="Sexta"><b>Sexta</b></th>
         <th abbr="Sábado"title="Sábado"><b>Sábado</b></th>
     </tr>
     </thead>
     <tbody>
     
     <?php
          $Data = strtotime($mes."/".$dia."/".$ano);
          $Dia  = date('w',strtotime(date('n/\1\/Y',$Data)));
          $Dias = date('t',$Data);
          for ($i=1,$d=1;$d<=$Dias;) {
               echo("<tr>");
               for ($x=1;$x<=7 && $d <= $Dias;$x++,$i++) {
                    if ($i > $Dia) {
            $destaque = '';
                        if ($x == 1) { $destaque = $domingo; }
                        if ($d == $dia) { $destaque = $hoje; }
                        if (($x == 1) && ($d == $dia)) { $destaque = $hoje; }
                        echo("<td ".$destaque.">".$d++."</td>");
                    }
                    else { echo("<td> </td>"); }
               }
               for (;$x<=7;$x++) { echo("<td></td>"); }
               echo("</tr>");
           }
     ?>
     </tbody>
</table>

 <form name="navegacao" method="post">
            <input type="hidden" name="mod" value="agendamentos">
            <input type="hidden" name="pa" value="agendamentos">
            <input type="hidden" name="data" value="">
            <input type="hidden" name="rf" value="">
</form>
        
<!-- função javascript para avançar os meses-->
&lt;script>
         function inLink(data){
            
            document.navegacao.mod.value='agendamentos'; //nome do módulo
            document.navegacao.pa.value='agendamentos'; //página do modulo
            document.navegacao.rf.value=data; //navegação
            document.navegacao.submit(); //pagina de envio
        }
  
</script>
<!-- fim função javascript para avançar os meses-->



&lt;script>
function inLink2(regiaofiscal){
            
            document.navegacao.mod.value='agendamentos';
            document.navegacao.pa.value='agendamentos2';
            document.navegacao.rf.value=regiaofiscal;
            document.navegacao.submit();
        }
  
</script>

<?php 
    
    $objUtil = new UtilView();
    $arrAgendamentosPrevistos = $objController->mostrarAgendamentos();

    $arrTmp = array();
     foreach($arrAgendamentosPrevistos as $arrSaida){
            $intAgendamentos = $arrSaida['idagendamento'];
            $arrSaida['Sala']="<a onclick='inLink2(\"".$arrSaida['idagendamento']."\")'>".$arrSaida['data_ini'].$arrSaida['data_fim'].$arrSaida['ad_usuarios_nome_logon'].$arrSaida['sala']."</a>";
            unset($arrSaida['idagendamento']);
            unset($arrSaida['data_ini']);
            unset($arrSaida['data_fim']);
            unset($arrSaida['ad_usuarios_nome_logon']);
            unset($arrSaida['sala']);
            array_push($arrTmp,$arrSaida);
            }//foreach

    //mostra a tabela
    $objUtil->drawTabela($arrTmp);
?>

Alguém poderia ajudar?

Editado por quintelab
Removido Ajuda do título
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Aonde exatamente ocorre o erro? Em qual linha?

O erro e nesta linha

<?php
        echo '<td class="mes"><a onclick="intLink(\"'.$dia.'/'.$mes_ant.'/'.$ano_ant.'\")"> << </a></td>'; //retrocede o mes
        echo '<td class="mes" colspan="5"></td>'; 
        echo '<td class="mes"><a onclick="intLink?(\''.$dia.'/'.$mes_prox.'/'.$ano_prox.'\')">  >> </a></td>'; //avança o mes
    ?>
E o javascript que chama a função e este:
form name="navegacao" method="post">
            <input type="hidden" name="mod" value="agendamentos">
            <input type="hidden" name="pa" value="agendamentos">
            <input type="hidden" name="data" value="">
            <input type="hidden" name="rf" value="">
</form>
        
<!-- função javascript para avançar os meses-->
<script>
        function inLink(data){
            
            document.navegacao.mod.value='agendamentos'; //nome do módulo
            document.navegacao.pa.value='agendamentos'; //página do modulo
            document.navegacao.rf.value=data; //navegação
            document.navegacao.submit(); //pagina de envio
        }
  
</script>
<!-- fim função javascript para avançar os meses-->

Quando executa o javascript mensionado da erro dizendo que falta um "."

Link para o comentário
Compartilhar em outros sites

  • 0

<?php
        echo '<td class="mes"><a onclick="intLink(\"'.$dia.'/'.$mes_ant.'/'.$ano_ant.'\")"> << </a></td>'; //retrocede o mes
        echo '<td class="mes" colspan="5"></td>'; 
        echo '<td class="mes"><a onclick="intLink?(\''.$dia.'/'.$mes_prox.'/'.$ano_prox.'\')">  >> </a></td>'; //avança o mes
    ?>
Não sei se pode ser isso, porém no código acima veja que em uma linha você fechou com aspas simples
$ano_prox.'\'
e na outra com aspas dupla
$ano_ant.'\"

Link para o comentário
Compartilhar em outros sites

  • 0
<?php
        echo '<td class="mes"><a onclick="intLink(\"'.$dia.'/'.$mes_ant.'/'.$ano_ant.'\")"> << </a></td>'; //retrocede o mes
        echo '<td class="mes" colspan="5"></td>'; 
        echo '<td class="mes"><a onclick="intLink?(\''.$dia.'/'.$mes_prox.'/'.$ano_prox.'\')">  >> </a></td>'; //avança o mes
    ?>
Não sei se pode ser isso, porém no código acima veja que em uma linha você fechou com aspas simples
$ano_prox.'\'
e na outra com aspas dupla
$ano_ant.'\"
Corrigi mas continua dando erro
<?php
        echo '<td class="mes"><a onclick="intLink(\''.$dia.'/'.$mes_ant.'/'.$ano_ant.'\')"> << </a></td>'; //retrocede o mes
        echo '<td class="mes" colspan="5"></td>'; 
        echo '<td class="mes"><a onclick="intLink?(\''.$dia.'/'.$mes_prox.'/'.$ano_prox.'\')">  >> </a></td>'; //avança o mes
    ?>

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...