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

calendario Agenda PHP e XAJAX


Grimberg

Pergunta

Bom dia..

Estou desenvolvendo em php e xajax um aplicativo de agenda calendário, porém não estou conseguindo exibir a página principal agendaAjax.php

e a mensagem de erro é esse:

Output has already been sent to the browser at /var/www/projeto/taxi/agenda/funcoes.php:446. Please make sure the command $xajax->processRequest() is placed before this.

OBS: a linda de código 446 da funcoes.php é o fim da aplicação quando fecha as tag de php

segue abaixo mue código:

agendaAjax.php

require_once("xajax/xajax_core/xajax.inc.php");/*busca livraria do XAJAX*/
include "funcoes.php";//inclui as funçoes
$xajax = new xajax();//Gera a classe
$xajax->setCharEncoding('ISO-8859-1');//Caracteres especiais

/*Registra cada uma das funçoes em PHP*/
$xajax->registerFunction("Antes");
$xajax->registerFunction("Proximo");
$xajax->registerFunction("Agenda");
$xajax->registerFunction("Mostrar");
$xajax->configure('decodeUTF8Input',true);
$xajax->processRequest();//Processa a requisiçao AJAX
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Agenda Serviço de Taxi</title>
<!--Chama o estilo da pagina-->
<link rel="stylesheet" type="text/css" href="estilo.css">
<!-- Responde ao browser -->
<?php $xajax->printJavascript("xajax/"); ?>
<!--Exibe a mensagem carregando -->
&lt;script type="text/javascript">
  xajax.callback.global.onRequest = function() {xajax.$('carregando').style.display = 'block';}
  xajax.callback.global.beforeResponseProcessing = function() {xajax.$('carregando').style.display='none';}
</script>

</head>

<body onload="xajax_Agenda()"><!-- Sai bunbando o calendario -->

<?php
include "sql.php";//conexão com o banco de dados

@mysql_select_db($db);//selecione o banco de dados
/*Gera as divs onde serão exibidos os dados requisitados */
 print "<div id=\"carregando\"><img src=\"imagem/load.gif\"/> carregando...</div>";
 print "<div id=\"endereco\"></div>"; 
 print "<div id=\"nome\"></div>";

?>

</body>
</html>
funcoes.php
<?php
session_start();//inicia a sessão do ano
include "sql.php";//Conexão


########################################
#  Função para voltar os meses do ano  #
########################################
function Antes($antes){
        $resposta = new xajaxResponse();
        //sleep(2); //habilite, caso queira ver ação do loading no localserver
        $dia = date('d');
        $month = $antes;
        $_SESSION['ano'];
        $hoje = date('j');//função importante pego o dia corrente
        if($month == 0){//Caso antes de janeiro
                $month = 12;
                $_SESSION['ano'] = $_SESSION['ano'] - 1;
        }
        
        switch($month.$n){/*notem duas variaveis para o switch para identificar dia e limitar numero de dias*/
        case 1: $mes = "JANEIRO";
                        $n = 31;
        break;
        case 2: $mes = "FEVEREIRO";// todo ano bixesto fev tem 29 dias
                        $bi = $_SESSION['ano'] % 4;//anos multiplos de 4 são bixestos
                        if($bi == 0){
                                $n = 29;
                        }else{
                                $n = 28;
                        }
        break;
        case 3: $mes = "MARÇO";
                        $n = 31;
        break;
        case 4: $mes = "ABRIL";
                        $n = 30;
        break;
        case 5: $mes = "MAIO";
                        $n = 31;
        break;
        case 6: $mes = "JUNHO";
                        $n = 30;
        break;
        case 7: $mes = "JULHO";
                        $n = 31;
        break;
        case 8: $mes = "AGOSTO";
                        $n = 31;
        break;
        case 9: $mes = "SETEMBRO";
                        $n = 30;
        break;
        case 10: $mes = "OUTUBRO";
                        $n = 31;
        break;
        case 11: $mes = "NOVEMBRO";
                        $n = 30;
        break;
        case 12: $mes = "DEZEMBRO";
                        $n = 31;
        break;
}

$pdianu = mktime(0,0,0,$month,1,$_SESSION['ano']);//primeiros dias do mes
$dialet = date('D', $pdianu);//escolhe pelo dia da semana
switch($dialet){//verifica que dia cai
        case "Sun": $branco = 0; break;
        case "Mon": $branco = 1; break;
        case "Tue": $branco = 2; break;
        case "Wed": $branco = 3; break;
        case "Thu": $branco = 4; break;
        case "Fri": $branco = 5; break;
        case "Sat": $branco = 6; break;
}

 $res .=  '<table class="tabela" >';//construção do calendario
        $res .=  '<tr>';
        $antes = $month - 1;// diminui um mes
        $proximo = $month + 1;// aumenta um mes
        $res .=  "<td class=\"mes\"><a href=\"java script:void(0);\" onclick=\"xajax_Antes($antes);\" title=\"Mês anterior\"><img src=imagem\"ant.gif\" border=\"0\"></a></td>";/*mês anterior*/
        $res .=  '<td class="mes" colspan="5">'.$mes.'/'.$_SESSION['ano'].'</td>';/*mes atual e ano*/
        $res .=  "<td class=\"mes\"><a href=\"java script:void(0);\" onclick=\"xajax_Proximo($proximo);\" title=\"Próximo mês\"><img src=imagem\"prox.gif\" border=\"0\"></a></td>";/*Proximo mês*/
        $res .=  '</tr><tr>';
        $res .=  '<td class="sem">D</td>';
        $res .=  '<td class="sem">S</td>';
        $res .=  '<td class="sem">T</td>';
        $res .=  '<td class="sem">Q</td>';
        $res .=  '<td class="sem">Q</td>';
        $res .=  '<td class="sem">S</td>';
        $res .=  '<td class="sem">S</td>';
        $res .=  '</tr><tr>';
        $dt = 1;
                        if($branco > 0){
                for($x = 0; $x < $branco; $x++){
                         $res .=  '<td> </td>';/*preenche os espaços em branco*/
                        $dt++;
                }
        }
        
         for($i = 1; $i <= $n; $i++ ){/*agora vamos no banco de dados verificar os evendos*/
                        $dtcliente = $i."-".$month."-".$_SESSION['ano'];
                        mysql_query("SET CHARACTER SET utf8");
                $sqlag = mysql_query("SELECT * FROM projeto.agendataxi WHERE dtcliente = '$dtcliente'") or die(mysql_error());
                                $num = mysql_num_rows($sqlag);/*quantos eventos tem para o mes*/
                                $id = @mysql_result($sqlag, 0, "idagendataxi");
                                $idev = @mysql_result($sqlag, 0, "dtcliente");
                                $eve = @mysql_result($sqlag, 0, "nome");
                                if($num > 0){/*prevalece qualquer dia especial do calendario, por isso está em primeiro*/
                   $res .=  '<td class="evt">';            
                   $res .=  "<a href=\"java script:void(0);\" onclick=\"xajax_Mostrar($id);\">".$i."</a>";
                   $res .=  '</td>';
                   $dt++;/*incrementa os dias da semana*/
                                   $qt++;/*quantos eventos tem no mes*/
                                                  }elseif($i == $hoje){/*imprime os dia corrente*/
                                                $res .=  '<td class="hj">';
                                                $res .=  $i;
                                                $res .=  '</td>';
                                                $dt++;
                                                }elseif($dt == 1){/*imprime os domingos*/
                                                $res .=  '<td class="dom">';
                                                $res .=  $i;
                                                $res .=  '</td>';
                                                $dt++;
                                                }else{/*imprime os dias normais*/
                                 $res .=  '<td class="td">';
                                                $res .=  $i;
                                                $res .=  '</td>';
                                                $dt++;
                                                }
                                                
                                                if($dt > 7){/*faz a quebra no sabado*/
                                                                $res .=  '</tr><tr>';
                                                                $dt = 1;
                                                                }
                }
        $res .=  '</tr>';
        $res .=  '</table>';
        $resposta->assign("conteudo", "innerHTML", $res);//Registra os valores
        $resposta->clear("nome", "innerHTML");//apaga o evento mostrado
        return $resposta;//Retorna os valores
}

########################################
#   Funçao que avança entre os meses   #
########################################
function Proximo($proximo){
        $resposta = new xajaxResponse();
        //sleep(2);//habilite para ver loading no localserver
        $dia = date('d');
        $month = $proximo;
        $_SESSION['ano'];       
        $hoje = date('j');//função importante pego o dia corrente
        if($month == 13){//caso o mes for maior que dezembro
                $month = 1;
                $_SESSION['ano'] = $_SESSION['ano'] + 1;
        }
switch($month.$n){/*notem duas variaveis para o switch para identificar dia e limitar numero de dias*/
        case 1: $mes = "JANEIRO";
                        $n = 31;
        break;
        case 2: $mes = "FEVEREIRO";// todo ano bixesto fev tem 29 dias
                        $bi = $ano % 4;//anos multiplos de 4 são bixestos
                        if($bi == 0){
                                $n = 29;
                        }else{
                                $n = 28;
                        }
        break;
        case 3: $mes = "MARÇO";
                        $n = 31;
        break;
        case 4: $mes = "ABRIL";
                        $n = 30;
        break;
        case 5: $mes = "MAIO";
                        $n = 31;
        break;
        case 6: $mes = "JUNHO";
                        $n = 30;
        break;
        case 7: $mes = "JULHO";
                        $n = 31;
        break;
        case 8: $mes = "AGOSTO";
                        $n = 31;
        break;
        case 9: $mes = "SETEMBRO";
                        $n = 30;
        break;
        case 10: $mes = "OUTUBRO";
                        $n = 31;
        break;
        case 11: $mes = "NOVEMBRO";
                        $n = 30;
        break;
        case 12: $mes = "DEZEMBRO";
                        $n = 31;
        break;
}

$pdianu = mktime(0,0,0,$month,1,$_SESSION['ano']);//primeiros dias do mes
$dialet = date('D', $pdianu);//escolhe pelo dia da semana
switch($dialet){//verifica que dia cai
        case "Sun": $branco = 0; break;
        case "Mon": $branco = 1; break;
        case "Tue": $branco = 2; break;
        case "Wed": $branco = 3; break;
        case "Thu": $branco = 4; break;
        case "Fri": $branco = 5; break;
        case "Sat": $branco = 6; break;
}

        $res .=  '<table class="tabela" >';//construção do calendario
        $res .=  '<tr>';
        $antes = $month - 1;
        $proximo = $month + 1;
        $res .=  "<td class=\"mes\"><a href=\"java script:void(0);\" onclick=\"xajax_Antes($antes);\" title=\"Mês anterior\"><img src=imagem\"ant.gif\" border=\"0\"></a></td>";/*mês anterior*/
        $res .=  '<td class="mes" colspan="5">'.$mes.'/'.$_SESSION['ano'].'</td>';/*mes atual e ano*/   
        $res .=  "<td class=\"mes\"><a href=\"java script:void(0);\" onclick=\"xajax_Proximo($proximo);\" title=\"Próximo mês\"><img src=imagem\"prox.gif\" border=\"0\"></a></td>";/*Proximo mês*/
        $res .=  '</tr><tr>';
        $res .=  '<td class="sem">D</td>';//$res .= ar os dias da semana
        $res .=  '<td class="sem">S</td>';
        $res .=  '<td class="sem">T</td>';
        $res .=  '<td class="sem">Q</td>';
        $res .=  '<td class="sem">Q</td>';
        $res .=  '<td class="sem">S</td>';
        $res .=  '<td class="sem">S</td>';
        $res .=  '</tr><tr>';
        $dt = 1;
        if($branco > 0){
                for($x = 0; $x < $branco; $x++){
                         $res .=  '<td> </td>';/*preenche os espaços em branco*/
                        $dt++;
                }
        }
        for($i = 1; $i <= $n; $i++ ){/*agora vamos no banco de dados verificar os evendos*/
                        $dtcliente = $i."-".$month."-".$_SESSION['ano'];
                        mysql_query("SET CHARACTER SET utf8");
                $sqlag = mysql_query("SELECT * FROM projeto.agendataxi WHERE dtcliente = '$dtcliente'") or die(mysql_error());
                                $num = mysql_num_rows($sqlag);/*quantos eventos tem para o mes*/
                                $id = @mysql_result($sqlag, 0, "idagendataxi");
                                $idev = @mysql_result($sqlag, 0, "dtcliente");
                                $eve = @mysql_result($sqlag, 0, "nome");
                                if($num > 0){/*prevalece qualquer dia especial do calendario, por isso está em primeiro*/
                   $res .=  '<td class="evt">';            
                   $res .=  "<a href=\"java script:void(0);\" onclick=\"xajax_Mostrar($id);\">".$i."</a>";
                   $res .=  '</td>';
                   $dt++;/*incrementa os dias da semana*/
                                   $qt++;/*quantos eventos tem no mes*/
                }elseif($i == $hoje){/*imprime os dia corrente*/
                        $res .=  '<td class="hj">';
                        $res .=  $i;
                        $res .=  '</td>';
                        $dt++;

                }elseif($dt == 1){/*imprime os domingos*/
                        $res .=  '<td class="dom">';
                        $res .=  $i;
                        $res .=  '</td>';
                        $dt++;
                }else{/*imprime os dias normais*/
                        $res .=  '<td class="td">';
                        $res .=  $i;
                        $res .=  '</td>';
                        $dt++;
                                }
                if($dt > 7){/*faz a quebra no sabado*/
                $res .=  '</tr><tr>';
                $dt = 1;
                }
        }
        $res .=  '</tr>';
        $res .=  '</table>';
        $resposta->assign("conteudo", "innerHTML", $res);//Registra os valores
        $resposta->clear("nome", "innerHTML");//apaga o evento mostrado
        return $resposta;//Retorna os valores
}

####################################################
#   Função que cria o Calendário e registra o Ano  #
####################################################
function Agenda(){
        $resposta = new xajaxResponse();
        //sleep(2);//Habilite para ver o loading no localserver
        $dia = date('d');
        $month = ltrim(date('m'),"0");/*ltrim elimina os zeros anteposto no mes*/
        session_register('ano');//Regitra a sessão
        $_SESSION['ano']= date('Y');//Registra o ano corrente
        $hoje = date('j');//função importante pego o dia corrente
switch($month.$n){/*notem duas variaveis para o switch para identificar dia e limitar numero de dias*/
        case 1: $mes = "JANEIRO";
                        $n = 31;
        break;
        case 2: $mes = "FEVEREIRO";// todo ano bixesto fev tem 29 dias
                        $bi = $_SESSION['ano'] % 4;//anos multiplos de 4 são bixestos
                        if($bi == 0){
                                $n = 29;
                        }else{
                                $n = 28;
                        }
        break;
        case 3: $mes = "MARÇO";
                        $n = 31;
        break;
        case 4: $mes = "ABRIL";
                        $n = 30;
        break;
        case 5: $mes = "MAIO";
                        $n = 31;
        break;
        case 6: $mes = "JUNHO";
                        $n = 30;
        break;
        case 7: $mes = "JULHO";
                        $n = 31;
        break;
        case 8: $mes = "AGOSTO";
                        $n = 31;
        break;
        case 9: $mes = "SETEMBRO";
                        $n = 30;
        break;
        case 10: $mes = "OUTUBRO";
                        $n = 31;
        break;
        case 11: $mes = "NOVEMBRO";
                        $n = 30;
        break;
        case 12: $mes = "DEZEMBRO";
                        $n = 31;
        break;
}

$pdianu = mktime(0,0,0,$month,1,$_SESSION['ano']);//primeiros dias do mes
$dialet = date('D', $pdianu);//escolhe pelo dia da semana
switch($dialet){//verifica que dia cai
        case "Sun": $branco = 0; break;
        case "Mon": $branco = 1; break;
        case "Tue": $branco = 2; break;
        case "Wed": $branco = 3; break;
        case "Thu": $branco = 4; break;
        case "Fri": $branco = 5; break;
        case "Sat": $branco = 6; break;
}

        $res .=  '<table class="tabela" >';//construção do calendario
        $res .=  '<tr>';
        $antes = $month - 1;//diminui um mes quando volta
        $proximo = $month + 1;// aumenta um mes quando avança
        $res .=  "<td class=\"mes\"><a href=\"java script:void(0);\" onclick=\"xajax_Antes($antes);\" title=\"Mês anterior\"><img src=imagem\"ant.gif\" border=\"0\"></a></td>";/*mês anterior*/
        $res .=  '<td class="mes" colspan="5">'.$mes.'/'.$_SESSION['ano'].'</td>';/*mes atual e ano*/
        $res .=  "<td class=\"mes\"><a href=\"java script:void(0);\" onclick=\"xajax_Proximo($proximo);\" title=\"Próximo mês\"><img src=imagem\"prox.gif\" border=\"0\"></a></td>";/*Proximo mês*/
        $res .=  '</tr><tr>';
        $res .=  '<td class="sem">D</td>';
        $res .=  '<td class="sem">S</td>';
        $res .=  '<td class="sem">T</td>';
        $res .=  '<td class="sem">Q</td>';
        $res .=  '<td class="sem">Q</td>';
        $res .=  '<td class="sem">S</td>';
        $res .=  '<td class="sem">S</td>';
        $res .=  '</tr><tr>';
        $dt = 1;
        if($branco > 0){
                for($x = 0; $x < $branco; $x++){
                         $res .=  '<td> </td>';/*preenche os espaços em branco*/
                        $dt++;
                }
        }
        for($i = 1; $i <= $n; $i++ ){/*agora vamos no banco de dados verificar os evendos*/
                        $dtevento = $i."-".$month."-".$_SESSION['ano'];
                        mysql_query("SET CHARACTER SET utf8");
                $sqlag = mysql_query("SELECT * FROM projeto.agendataxi WHERE dtcliente = '$dtcliente'") or die(mysql_error());
                                $num = mysql_num_rows($sqlag);/*quantos eventos tem para o mes*/
                                $id = @mysql_result($sqlag, 0, "idagendataxi");
                                $idev = @mysql_result($sqlag, 0, "dtcliente");
                                $eve = @mysql_result($sqlag, 0, "nome");
                                
                                if($num > 0){/*prevalece qualquer dia especial do calendario, por isso está em primeiro*/
                   $res .=  '<td class="evt">';            
                   $res .=  "<a href=\"java script:void(0);\" onclick=\"xajax_Mostrar($id);\">".$i."</a>";
                   $res .=  '</td>';
                   $dt++;/*incrementa os dias da semana*/
                                   $qt++;/*quantos eventos tem no mes*/
                }elseif($i == $hoje){/*imprime os dia corrente*/
                        $res .=  '<td class="hj">';
                        $res .=  $i;
                        $res .=  '</td>';
                        $dt++;

                }elseif($dt == 1){/*imprime os domingos*/
                        $res .=  '<td class="dom">';
                        $res .=  $i;
                        $res .=  '</td>';
                        $dt++;
                }else{/*imprime os dias normais*/
                        $res .=  '<td class="td">';
                        $res .=  $i;
                        $res .=  '</td>';
                        $dt++;
                                }
                if($dt > 7){/*faz a quebra no sabado*/
                $res .=  '</tr><tr>';
                $dt = 1;
                }
        }
        $res .=  '</tr>';
        $res .=  '</table>';
        $resposta->assign("conteudo", "innerHTML", $res);//Recebe os valore os valores
        return $resposta;//Retorna os valores
}

###############################################
#  Funçao que mostra os eventos relacionados  #
###############################################
function Mostrar($id){
        $resposta = new xajaxResponse();
        //sleep(2); //Habilite para ver no servidor local
        mysql_query("SET CHARACTER SET utf8");/* Configura os caracteres especiais do banco*/
        $select = mysql_query("SELECT * FROM projeto.agendataxi WHERE idagendataxi = '$id'");
        $mais = @mysql_result($select, 0, "dtcliente");  
        $sqlev = mysql_query("SELECT * FROM projeto.agendataxi WHERE dtcliente = '$mais' ORDER BY hora ASC") or die(mysql_error());
        $numev = mysql_num_rows($sqlev);
        for($j = 0; $j < $numev; $j++){/*caso no mesmo dia tenha mais eventos continua imprimindo */
        $eve = @mysql_result($sqlev, $j, "cliente");/*pegando os valores do banco referente ao evento*/
        $dev = @mysql_result($sqlev, $j, "dtcliente");
        $dsev = @mysql_result($sqlev, $j, "conteudo");
        $auev = @mysql_result($sqlev, $j, "endereco");
        $cidade = @mysql_result($sqlev, $j, "cidade");
        $lev = @mysql_result($sqlev, $j, "local");
        $psev = @mysql_result($sqlev, $j, "data");
        $nowev = date('d/m/Y - H:i', strtotime($psev));/*transforma a data para data padrão brazil*/
        $hev = @mysql_result($sqlev, $j, "hora");
        $res .=  '<table width="300" cellspacing="0" cellpadding="0">';/*monta a tabela de eventos*/
        $res .=  '<tr><td class="show">'.$dev.' - '.$eve.'</td></tr>';
        $res .=  '<tr><td class="linha"><b>Hora: </b>'.$hev.'hs</td></tr>';
        $res .=  '<tr><td class="linha"><b>Cidade: </b>'.$cidade.'</td></tr>';
        $res .=  '<tr><td class="linha"><b>Referencia: </b>'.$lev.'</td></tr>';
        $res .=  '<tr><td class="linha"><b>Descrição: </b>'.nl2br($dsev).'</td></tr>';/*mantem o quebra da linha para dascriçao do evento*/
        $res .=  '<tr><td class="linha"><b>Postado: </b><small>'.$nowev.'hs por '.$auev.'</small></td></tr>';
        $res .=  '</table>';
        }
        $resposta->assign("cliente", "innerHTML", $res);//Registra os valores e destinos
        return $resposta;//Retorna os valores
}
?>
conexão com o banco mysql sql.php
<?php
$host = "localhost";//caso esteja usando o xampp ou wamp
$user = "root";
$pass = "123";
$db = "agendataxi";
$conn = mysql_connect($host, $user, $pass) or die (mysql_error());

@mysql_select_db($db);

?>

as bibliotecas do xajax estão na pasta dessa aplicação.

Alguém poderia me ajudar ?

Obrigado pela atenção

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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
      652k
×
×
  • Criar Novo...