Jump to content


Photo

Requisicao De Outra Pagina


  • Faça o login para participar
3 replies to this topic

#1 A lenda viva

A lenda viva

    Turista

  • Usuários
  • 36 posts
  • Sexo:Não informado

Posted 10/04/2008, 09:47

ae galera!

to iniciando em "ajax"... portanto sou meio leigo.

consegui faze oque queria aqui: adicionar / remover / editar registros de um BD MySQL (com php). Mas SÓ funciona no FIREFOX! .... no IE 6 e 7 ele nao consegue adicionar/editar os dados no BD... sendo q nao retorna nenhum erro...

fiz um teste... dei um alert() com os dados do form.... ele pega os dados ... faz a requisicao pra uma pagina .php mas nao insere os dados.

se alguem souber, ta ai o code:

<script>
	function editarConfirma(id){
	var xmlhttp = null;

	 try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}

	if  (!xmlhttp && typeof  XMLHttpRequest != 'undefined' ) {
		try  {
			xmlhttp = new  XMLHttpRequest();
		} catch  (e) {
			xmlhttp = false;
		}
	}
	
			if (xmlhttp) {		
			// variaveis do formulario
			var	nome_registro = document.getElementById('nome_registro').value;
			var	descricao_registro = document.getElementById('descricao_registro').value;
				
			xmlhttp.open('POST', 'acoes.php?acao=add_parceirosConfirma', true);
				xmlhttp.setRequestHeader('Content-Type','text/xml');
				xmlhttp.setRequestHeader('encoding','ISO-8859-1');
				xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
				xmlhttp.onreadystatechange = function(){
					if (xmlhttp.readyState == 1) {
					document.getElementById("status").innerHTML = "Carregando, aguarde...";	
					}	
					if (xmlhttp.readyState == 4){
					document.getElementById("status").innerHTML = xmlhttp.responseText;	
					alert("none:"+nome_registro+" descrição:"+descricao_registro+" id:"+id)
					atualizaLista();
					}
				}
				
			}
			
	xmlhttp.send("nome_registro=" + nome_registro + "&descricao_registro=" + descricao_registro + "&id=" + id);
	}

</script>


<div id="status"></div>
<div id="editar_dados">
  <form id="form1" name="form1" method="post">
	Nome:
	  <input name="nome_registro" type="text" id="nome_registro" />
	<br />
  Descri&ccedil;&atilde;o: 
  <input name="descricao_registro" type="text" id="descricao_registro" />
  <br />
  <br />
  <input type="submit" name="Submit" value="Submit" onClick="editarConfirma('23');"/>
  </form>
</div>

e a pagina .php

if($_GET["acao"] == "add_parceirosConfirma"){
	
	$sqlAtualiza = mysql_query("UPDATE parceiros SET nome='$_POST[nome_registro]', descricao='$_POST[descricao_registro]' WHERE id='$_POST[id]'")or die("Erro...3");
	
	echo"Dados atualizados com sucesso!";

	}

no code acima eu to tentando editar o registro no bd q tem id = 23

relembrando que no firefox/opera/netscape funciona certinho, no IE 6e7 NAO FUNCIONA.

valeu ae

#2 Tohma

Tohma

    12 Horas

  • Usuários
  • 202 posts
  • Sexo:Masculino
  • Localidade:Curitiba

Posted 10/04/2008, 10:05

fala cara, pode ser que eu esteja redondamente enganado mas pelo que percebi seu código foi feito para o firefox

note que qdo ele chama o ajax para o IE, retorna false
catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}

o codigo abaixo eu uso para e funciona bem, vai precisar customizar

function ajaxInit() {
   	
var xmlhttp;   	
	  //verifica se o browser tem suporte a ajax
	try {
	 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} 
	catch(e) {
	 try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	 }
	 catch(ex) {
		try {
		   xmlhttp = new XMLHttpRequest();
		}
		catch(exc) {
		   alert("Esse browser não tem recursos para uso do Ajax. Por favor atualize seu Navegador!");
		   xmlhttp = null;
		}
	 }
	}
return xmlhttp;

}

perceba q em nenhum dos casos ele retorna false, a menos que o navegador nao tenha suporte


qualquer coisa posta aí



flw
DBPlex dbplex.com.br

#3 strago

strago

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 12/04/2008, 10:48

Tohma, porque tu não usa o xajax ?

mais pratico e até o momento tem funcionado direitinho.

com ele tu não precisa ficar se esgotando com códigos, basta fazer as funções em php e registrar na instancia da classe xajax e chama-la no form

EX:

//na pagina php 
$xajax->registerFunction("facaisso");

//sete o onsubmit do form pra return false

//no onclick de um botao do form ( type button )
xajax_facaisso(xajax.getFormValues('form'));

ele passa o form inteiro pra voce e voce nao tem q se matar pra criar os urls

PS: Também não precisa se preocupar se o Browser é IE ou FF =]

Edição feita por: strago, 12/04/2008, 10:49.


#4 Tohma

Tohma

    12 Horas

  • Usuários
  • 202 posts
  • Sexo:Masculino
  • Localidade:Curitiba

Posted 12/04/2008, 22:06

Cara, sei q vou dizer besteira mas eu sou ainda daqueles que nao gosta muito de depender de framework ... ainda tenho certa resistencia, apesar de saber q fica muito mais fácil trabalhar com eles e o suporte aos navegadores é muito melhor ... sei lá ... um framework q eu me interessei em aprender mas ainda nao uso é jquery ...


flw (y)
DBPlex dbplex.com.br




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq