+3

Introdução ao Cajax

criado por Thiago F. Pappacena em 22/09/2005 1:53pm
Após baixar o arquivo http://sourceforge.net/project/showfiles.php?group_id=147450&package_id=162484 e descompactá-lo em uma pasta legível pelo webserver, você terá de criar, dentro do seu DOCUMENT_ROOT, uma pasta para servir de cache das saídas Javascript da interface Cajax. Por padrão, o nome da pasta é cajaxJS. Mais adiante, detalharemos o funcionamento deste sistema de caches.

Com os arquivos descompactados e a pasta criada, mãos à massa:

	
<?php
require_once("/pasta/onde/esta/Cajax/CajaxInterface.php");
$Cajax = new CajaxInterface();
	
// $Cajax->setCacheDir('cajaxCache');
// $Cajax->useCache( false );
	
$FormHandler = new CajaxFormHandler( 'formID', 'function (resposta) { 
        document.getElementById("respostaDiv").innerHTML = resposta;
    }'
);

$Cajax->addHandler( $FormHandler );
	
$Cajax->handleAll();
?>
<html>
<head>
	<?= $Cajax->displayJSInterface(); ?>
</head>
<body>
<div id="respostaDiv"></div>

<form id="formID" action="pagina.php" method="POST">
	<input type="text" name="linguagem" value="php">
	<input type="submit" value="Enviar!">
</form>
</body>
</html>

Comentários:

Mostrando 1 - 10 de 63 comentários
Você precisa alterar as permissões da pasta.

Entre com SSH ou algo do gênero, ou peça para que o administrador da máquina execute este script de instalação (ele é simples... só dá alguns chown e chmod nos arquivos do Cajax, além de limpar caches antigos...)
05/06/2006 1:20pm (~18 anos atrás)

Mariana Réa disse:
Eu tenho uma maquina windows e acesso o servidor atraves do samba, teria outra maneira? se naum tiver eu entro e faço isso, é q terei q pedir a senha.
Mto obrigada
05/06/2006 1:05pm (~18 anos atrás)

Então execute o bash-script install para mudar as permissões dos arquivos.

entre no diretório onde você descompactou o Cajax e rode
# ./install
ou
# bash install
05/06/2006 1:01pm (~18 anos atrás)

Mariana Réa disse:
O servidor é Linux.
05/06/2006 12:49pm (~18 anos atrás)

Linux ou Windows? Qual servidor web?
Provavelmente o diretório padrão de cache não pode ser acessado para gravação pelo webserver.

Flávia, o erro acontece por uma mudança de comportamento entre versões do PHP. Na verdade, não é um erro... só um warning. Mudando o error_reporting, o warning some. ;)

Espero ter tempo em breve para reparar esses bugs...
05/06/2006 12:11pm (~18 anos atrás)

Mariana Réa disse:
Eu puxei o arquivo e descompactei no servidor, numa pasta cajax. Mas qdo entro na pasta os arquivos Install, credits e os readme's ficam como arquivos indefinidos, eu testei tb o examplo e nada, veja aki http://www.arcaretentores.com.br/cajax/Cajax-20051021/Examples/
o q eu fiz d erado?
05/06/2006 11:08am (~18 anos atrás)

Desculpem, eu não havia visto a solução pro erro acima... já corrigi... mas, de onde vem isso???

vti_encoding:SR|utf8-nl vti_author:SR|flaviajo vti_modifiedby:SR|flaviajo vti_timelastmodified:TR|30 May 2006 23:39:40 -0000 vti_timecreated:TR|30 May 2006 23:39:40 -0000 vti_cacheddtm:TX|30 May 2006 23:39:40 -0000 vti_filesize:IR|6088 vti_extenderversion:SR|5.0.2.2634 vti_backlinkinfo:VX| vti_encoding:SR|utf8-nl vti_author:SR|flaviajo vti_modifiedby:SR|flaviajo vti_timelastmodified:TR|30 May 2006 23:39:31 -0000 vti_timecreated:TR|30 May 2006 23:39:31 -0000 vti_cacheddtm:TX|30 May 2006 23:39:31 -0000 vti_filesize:IR|7162 vti_extenderversion:SR|5.0.2.2634 vti_backlinkinfo:VX| vti_encoding:SR|utf8-nl vti_author:SR|flaviajo vti_modifiedby:SR|flaviajo vti_timelastmodified:TR|30 May 2006 23:39:55 -0000 vti_timecreated:TR|30 May 2006 23:39:55 -0000 vti_cacheddtm:TX|30 May 2006 23:39:55 -0000 vti_filesize:IR|15895 vti_extenderversion:SR|5.0.2.2634 vti_backlinkinfo:VX| vti_encoding:SR|utf8-nl vti_author:SR|flaviajo vti_modifiedby:SR|flaviajo vti_timelastmodified:TR|30 May 2006 23:39:52 -0000 vti_timecreated:TR|30 May 2006 23:39:52 -0000 vti_cacheddtm:TX|30 May 2006 23:39:52 -0000 vti_filesize:IR|5031 vti_extenderversion:SR|5.0.2.2634 vti_backlinkinfo:VX| vti_encoding:SR|utf8-nl vti_author:SR|flaviajo vti_modifiedby:SR|flaviajo vti_timelastmodified:TR|30 May 2006 23:39:57 -0000 vti_timecreated:TR|30 May 2006 23:39:57 -0000 vti_cacheddtm:TX|30 May 2006 23:39:57 -0000 vti_filesize:IR|6699 vti_extenderversion:SR|5.0.2.2634 vti_backlinkinfo:VX| vti_encoding:SR|utf8-nl vti_author:SR|flaviajo vti_modifiedby:SR|flaviajo vti_timelastmodified:TR|31 May 2006 00:00:11 -0000 vti_timecreated:TR|30 May 2006 23:39:28 -0000 vti_extenderversion:SR|5.0.2.2634 vti_backlinkinfo:VX| vti_nexttolasttimemodified:TW|30 May 2006 23:39:28 -0000 vti_cacheddtm:TX|31 May 2006 00:00:11 -0000 vti_filesize:IR|7817

Obrigada!
30/05/2006 5:05pm (~18 anos atrás)

Meu problema é o mesmo do Jorge Jardim mais acima...

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of get_class(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /usr/home3/flaviajo/public_html/ajax/cajax/Handlers/CajaxHandler.class.php on line 167
30/05/2006 4:58pm (~18 anos atrás)

Léo Hackin disse:
Salve pessoal,

O problema que está ocorrendo com vocês (referente à linha 525/531) dos warnings:
Warning: Invalid argument supplied for foreach() in [blablabla]\Cajax-20051021\CajaxInterface.php on line 531

... Não é com o glob (claro, se vocês tiverem o php atualizado) ...

O problema está na forma que o interpretador PHP no rWindows devolve a array retornada pelo glob e como o foreach vê esse resultado, pois ele precisa de uma array nativa. No caso, o foreach não estava enxergando a array de forma correta.

Para resolver, exige-se uma alteração na linha 525 do arquivo em questão (CajaxInterface.php):

Linha antiga:
foreach(glob("{$dir}/*", GLOB_NOSORT) as $k => $v)

Linha nova:
foreach((array)glob("{$dir}/*", GLOB_NOSORT) as $k => $v)

(array) força o interpretador a enxergar a volta do comando glob como um array, resolvendo o problema dos warnings que estavam ocorrendo.

Portanto, creio que o problema não seja o EasyPHP (que por sinal funciona até legal) e sim desse detalhe, pois estou aqui com WAMP instalado na mão e deu esse problema também. E pelo que vi, os outros erros (diretorios vazios,

Enviei um e-mail ao Thiago para ele poder acertar e atualizar o CAJAX lá. Se é que à essa altura ele já não resolveu. ;)

Do mais, parabéns ao cara pela excelente ferramenta.

Abração a todos.
05/05/2006 5:55pm (~18 anos atrás)

Jorge Jardim disse:
Esse problema continua, alguem pode me dizer oq é?

Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of get_class(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /home/frames2/public_html/ajax/cajax/cajax2/cajax2/Handlers/CajaxHandler.class.php on line 167
21/03/2006 1:53am (~18 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)