Pessoal,
Tenho no meu site um JCarrousel que passa uma imagens carregadas do banco por um while php: tudo funciona.
Agora, quero colocar uma caixa de texto (ou coisa parecida) com a finalidade de, à medida que a pessoa vai digitando o nome da imagem (portal) na caixa, o ajax vai pesquisando no banco se existe aquela combinação. Caso exista, o javascript marcará e exibirá (caso esteja escondido) a imagem do JCarroussel.
Estou tentando com ajax assim:
Código (Javascript):
Eu fiz um include(''); do php com o endereço de ajax.open para ter certeza que o endereço estava certo e estava. Mas o ajax.open não consegue abrir.
E o alert(obj); esta dando null;
Poque será?
Eis o código do php também:
Código (PHP):
Será que existe alguma coisa errada? Ou alguém tem uma ideia melhor?
Tenho no meu site um JCarrousel que passa uma imagens carregadas do banco por um while php: tudo funciona.
Agora, quero colocar uma caixa de texto (ou coisa parecida) com a finalidade de, à medida que a pessoa vai digitando o nome da imagem (portal) na caixa, o ajax vai pesquisando no banco se existe aquela combinação. Caso exista, o javascript marcará e exibirá (caso esteja escondido) a imagem do JCarroussel.
Estou tentando com ajax assim:
Código (Javascript):
function selecionaPortal(campo)
{
try { ajax = new ActiveXObject("Microsoft.XMLHTTP");}
catch(e)
{
try { ajax = new ActiveXObject("Msxml2.XMLHTTP"); }
catch(ex)
{
try { ajax = new XMLHttpRequest(); }
catch(exc)
{
alert("Esse browser não tem recursos para uso do ajax");
ajax = null;
}
}
}
if(ajax)
{
ajax.open("POST", "global/funcoes_php/selecionaPortal.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
processXMLPortais(ajax.responseXML,campo);
var params = "nome="+campo;
ajax.send("nome="+params);
}
}
function processXMLPortais(obj,campo)
{
alert(obj);
var dataArray = obj.getElementsByTagName("portal");
if(dataArray.length > 0)
{
var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
var nome = item.getElementsByTagName("nome")[0].firstChild.nodeValue;
alert(nome);
}
}
</script>
Ao executar o ajax.open, ele não consegue conectar com o arquivo php.{
try { ajax = new ActiveXObject("Microsoft.XMLHTTP");}
catch(e)
{
try { ajax = new ActiveXObject("Msxml2.XMLHTTP"); }
catch(ex)
{
try { ajax = new XMLHttpRequest(); }
catch(exc)
{
alert("Esse browser não tem recursos para uso do ajax");
ajax = null;
}
}
}
if(ajax)
{
ajax.open("POST", "global/funcoes_php/selecionaPortal.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
processXMLPortais(ajax.responseXML,campo);
var params = "nome="+campo;
ajax.send("nome="+params);
}
}
function processXMLPortais(obj,campo)
{
alert(obj);
var dataArray = obj.getElementsByTagName("portal");
if(dataArray.length > 0)
{
var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
var nome = item.getElementsByTagName("nome")[0].firstChild.nodeValue;
alert(nome);
}
}
</script>
Eu fiz um include(''); do php com o endereço de ajax.open para ter certeza que o endereço estava certo e estava. Mas o ajax.open não consegue abrir.
E o alert(obj); esta dando null;
Poque será?
Eis o código do php também:
Código (PHP):
<?php
require_once("../config/conexao.inc");
$selecionaPortalString = "SELECT id, nome FROM portais WHERE nome='".$_POST["nome"]."''";
$selecionaPortalQuery = $conexao->Query($selecionaPortalString);
if($selecionaPortalQuery->num_rows>0)
{
list($codigo, $nome)=$selecionaPortalQuery->fetch_row();
//XML
$xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
$xml .= "<portais>\n";
$xml .= "<portal>\n";
$xml .= "<codigo>".$codigo."</codigo>\n";
$xml .= "<nome>".$nome."</nome>\n";
$xml .= "</portal>\n";
$xml.= "</portais>\n";
}
header("Content-type: application/xml; charset=utf-8");
echo $xml;
?>
Se eu rodar esse php substituindo o parâmetro por um valor que sei que exista, ele gera certinho o xml.require_once("../config/conexao.inc");
$selecionaPortalString = "SELECT id, nome FROM portais WHERE nome='".$_POST["nome"]."''";
$selecionaPortalQuery = $conexao->Query($selecionaPortalString);
if($selecionaPortalQuery->num_rows>0)
{
list($codigo, $nome)=$selecionaPortalQuery->fetch_row();
//XML
$xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
$xml .= "<portais>\n";
$xml .= "<portal>\n";
$xml .= "<codigo>".$codigo."</codigo>\n";
$xml .= "<nome>".$nome."</nome>\n";
$xml .= "</portal>\n";
$xml.= "</portais>\n";
}
header("Content-type: application/xml; charset=utf-8");
echo $xml;
?>
Será que existe alguma coisa errada? Ou alguém tem uma ideia melhor?