sábado, 21 de agosto de 2010

XML em PHP

function obterArrResposta($pergunta)
{
$arrOpcoes = $pergunta->opcoes->opcao;
$arrResposta = array();
if($arrOpcoes)
{
foreach($arrOpcoes as $opcao)
{
$arrResposta[] = strip_tags($opcao[0]->asXML());
}
}
else
{
$faixa_opcoes = $pergunta->opcoes->faixa_opcoes;
if($faixa_opcoes)
{
$faixa_opcoes = strip_tags($faixa_opcoes[0]->asXML());
$arrFaixas = explode("-", $faixa_opcoes);
for($i = $arrFaixas[0] ; $i <= $arrFaixas[1] ; $i++)
{
$arrResposta[] = $i;
}
}
}

return $arrResposta;
}

sexta-feira, 13 de agosto de 2010

doAjaxStuff

Pra eu não ter mais que ficar procurando essa função:

function doAjaxStuff
(postQueryString, onreadystatechange, action)
{
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject
("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Seu navegador não suporta AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=onreadystatechange;
xmlHttp.open("POST", action, true);
xmlHttp.setRequestHeader
("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader
("Content-length", postQueryString.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(postQueryString);
}

Erro de proxy usando ajax

Chamava uma página usando http://localhost/dir/prog.php

O IP da minha máquina era 10.68.10.68

A página realizava algumas chamadas ajax para http://10.68.10.68/dir/prog2.php

A requisição ajax não saía. Dava erro 407, pedindo autorização do proxy da rede em que eu, cliente, estava.

Soluçao simples: passei a chamar a página trocando o localhost pelo IP da máquina :D .

sexta-feira, 6 de agosto de 2010

Precisei garantir que uma página html teria dois arquivos ".js" carregados. Para isso fiz o código que está abaixo. Não tenho certeza ainda se vale a pena fazer isso. Acredito que a vantagem seja que o usuário desse js não precise lembrar também de carregar o segundo arquivo.

function inc(filename)
{
var body = document.getElementsByTagName('body').item(0);
script = document.createElement('script');
script.src = filename;
script.type = 'text/javascript';
body.appendChild(script)
}

inc("nome-do-arquivo-no-formato-do-campo-src-da-tag-script");
copiado de http://bytes.com/topic/javascript/answers/149165-import-include-js-file-into-js-file

Poderia ter feito também como abaixo, é menos elegante, mas é menor e deve funcionar quase sempre:

document.write("<script type='text/javascript' src='b.js'></script>");

http://www.jguru.com/faq/view.jsp?EID=1339630