Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rob.coutinho

ASP com Ajax

Recommended Posts

Sem problemas. Ta aí um código em PHP que funciona perfeitamente.

 

Primeiro o código da função:

 

function openAjax() {
var Ajax;
try {Ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers mais populares, como: Firefox, Safari, dentre outros.
}catch(ee) {
try {Ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o IE da MS
}catch(e) {
try {Ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS
}catch(e) {Ajax = false;
}
}
}
return Ajax;
}


function carregaAjax(pagina, alvo, param1 , param2) {
if(document.getElementById) { // Para os browsers complacentes com o DOM W3C.
var exibeResultado = document.getElementById(alvo); // div que exibirá o resultado.
var Ajax = openAjax(); // Inicia o Ajax.
Ajax.open("GET", pagina+"?"+param1+"="+param2, true); // fazendo a requisição
Ajax.onreadystatechange = function()
{
if(Ajax.readyState == 1) { // Quando estiver carregando, exibe: carregando...
exibeResultado.innerHTML = "<img src='loading.gif'>";
}
if(Ajax.readyState == 4) { // Quando estiver tudo pronto.
if(Ajax.status == 200) {
var resultado = Ajax.responseText; // Coloca o retornado pelo Ajax nessa variável
resultado = resultado.replace(/\+/g," "); // Resolve o problema dos acentos (saiba mais aqui: [url="http://www.plugsites.net/leandro/?p=4)"]http://www.plugsites.net/leandro/?p=4)[/url]
resultado = unescape(resultado); // Resolve o problema dos acentos
exibeResultado.innerHTML = resultado;
} else {
exibeResultado.innerHTML = "Erro: .";
}
}
}
Ajax.send(null); // submete
}
}

Agora o código que chama essa função:

 

onchange="java script:carregaAjax('ajaxCampusLista.php','selectCampus','id_entidade',window.document.getElementById('idEntidade').value)"

E por fim a página de resposta:

 

<?
session_start();
include("conn.php");

//Header para evitar cahe
header("Content-type: text/html; charset=iso-8859-1");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

$id_entidade = $_REQUEST["id_entidade"];
$cmdEntidadeCampus = mysql_query("select * from entidades_campus where id_entidade = '".$id_entidade."'");

if(mysql_num_rows($cmdEntidadeCampus) > 0){
	$arrayEntidadeCampus = mysql_fetch_array($cmdEntidadeCampus);
	$texto = $texto."
	<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
	<input name=\"idEntidadeCampus\" id=\"idEntidadeCampus\" type=\"hidden\" value=\"".$arrayEntidadeCampus["id_entidadeCampus"]."\" />
	<tr><td height=\"10\" colspan=\"2\"></td></tr>
	<tr><td class=\"txt_2b_red\" width=\"47%\" align=\"left\">".$arrayEntidadeCampus["campus"]."</td>
	<td align=\"left\">
	<input name=\"btMudaCampus\" type=\"button\" class=\"bt_logar\" id=\"btMudaCampus\" value=\"Mudar Campus\" onclick=\"loadFragmentInToElement(window.document.getElementById('idEntidade').value,'','','campusMuda')\" />
	</td></tr>
	</table>";
	$_SESSION["idEntidadeCampus"] = $arrayEntidadeCampus["id_entidadeCampus"];
}else{
	$texto = $texto."
	<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
	<tr><td height=\"10\"></td></tr>
	<tr><td class=\"txt_2b_red\">Campus não encontrado(s)!</td></tr>
	</table>";
	$_SESSION["idEntidadeCampus"] = "";
}
echo $texto;
?>

Para entenderem melhor, acessem esse link: www.abraphiset.com.br e no menu superior esquerdo acessem o cadastro de professor. No form que abrir, escolham alguma entidade de ensino válida, cliquem em nova entidade e por aí vai. Vocês verão que é tudo atualizado instantâneamente inclusive, a verificação do formulário.

 

Sempre que é gerado um form novo ele é verificado. Só não sei pq no PHP funciona e no ASP não. Tô começando a estranhar o servidor do site que é de uma empresa que nem conheço. Só pode.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Poste as URL de teste como no poste #10, pois só a tradução do script PHP para ASP, será o mesmo resultado do que já foi postado para você, e seu erro parece está sendo na hora de colocar o ASP + Ajax para funcionar.

 

O objetivo não é te entregar pronto, mas te mostrar onde está errando para que você possa corrigir.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Despois que eu mudei o javascript está funcionando mas ainda está meio confuso. Por ex. Quando entro com o login certo de cara, ele funciona, mostra a tabela correta. Quando entro com um login inválido, ele mostra novamente o form de login com a msg de erro. Em compensação, ele não roda mais o script.

 

Creio que o problema agora é a forma como o código do formulário de erro é gerado na página ASP. Estou quase conseguindo rodar esse bendito form de login. Fala sério, isso em PHP seria mto mais fácil. Pena que no servidor em questão que eu estou trabalhando, não oferecem hospedagem Linux senão, fora de brincadeira, mas já tinha mandado mudar pra PHP.

Na verdade você não está montando no FORM a chamada ao JavaScript. O problema não é a linguagem, esse erro aconteceria tanto em PHP, ASP, Java, Phyton ou qualquer outra linguagem.
Leia a minha resposta e veja que já possui uma possível solução e onde está o problema, que não tem nada a ver com a linguagem e sim com a programação.

 

Como o Hargon disse, se você fizer um script PHP como está esse ASP você terá exatamente o mesmo erro de programação. Não culpe uma linguagem se o programador não cnsegue trabalhar com ela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.