Ir para conteúdo

POWERED BY:

Arquivado

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

ahsc

[Resolvido] jquery no ie

Recommended Posts

Olá pessoal,

 

Bom. Montei um aplicativo que usa jquery para achamar alguns dados via ajax. Funciona assim:

Há uma combo que pega valores de um bd. Ao escolher uma opção dessa combo o jquery pega esse valor e passa para um arquivo php fazer uma consulta e o retorno dessa consulta é carregado num campo de input. Até aí, tudo beleza, mais pra todos os navegadores com exceção o ie. Já tentei de várias formas e não consigo resolver. Sou iniciante em jquery e possívelmente seja alguma comida de bola minha.

 

segue o código jquery que pega o valor da combo e manda para processamento num arquivo chamado processa.php. Na combo tem um método onchange("exibePrecoTabela(this.value);") que chama o método do jquery q faz o processamento

 

eis o código

 

function exibePrecoTabela(produto) 
{
	$.ajax
	({
		type: "GET",
		url: "view/processa.php",
		data: "produto=" + produto,
		success: function(produto) 
		{
			informacoesProduto = produto.split("-");
			$("#precotabela").val(informacoesProduto[0]);//insere o preço de tabela no campo precotabela
			$("#desconto").val(" ");//limpa o campo de desconto
			$("#preco").val(informacoesProduto[0]);//adiciona o preço de tabela ao preço do produto. esse preço pode ser alterado para mais ou para menos. se for para menos mostra o desconto dado
		},
	});
}

E aqui o código do processa.php

$produto = $_GET['produto'];
	
	$conexao = mysql_connect("localhost","root");
	mysql_select_db("pedinternet");
	
	$sql = "SELECT * FROM `composicaoprodutosprecos` WHERE `Produto` = '".$produto."' ORDER BY Data DESC LIMIT 1"; 
	$result = mysql_query($sql, $conexao);
	
	$produtos = mysql_fetch_assoc($result);
	$precotabela = $produtos['Valor'];
	echo $precotabela;

	
	
	mysql_close($conexao);

Aí no mesmo form o usuário pode alterar o preço do produto e essa alteração calcula o desconto baseado no valor escolhido pela combo. também é usado o jquery.

 

$(function () {
	$("#preco").blur(function () {
		var preco = $(this).val();
		var precotabela = $("#precotabela").val();
		$.ajax({
			type: "GET",
			url: "view/desconto.php",
			data: "preco="+preco+"&precotabela="+precotabela,
			success: function(preco){
				informacoesPreco = preco.split("-");
				$("#desconto").val(informacoesPreco[0]);//tras o valor da consulta e insere no campo desconto
			}
		});
	});
});

Cógido para cálculo do desconto

 

$preco = $_GET['preco'];
	$precotabela = $_GET['precotabela'];
	if($preco<$precotabela)
	{
		echo $desconto = $precotabela-$preco;
	}

Erro apresentado no ie (no meu caso o ie 8 que tb emulo para ie 7)

 

indicador, seguência ou número esperado aplicacao.js linha 35.
a linha 35 é o final da chamada do ajax e acaba assim:
chamada da função que pega o valor da combo.
$.ajax
	({
		type: "GET",
		url: "view/processa.php",
		data: "produto=" + produto,
		success: function(produto) 
		{
			informacoesProduto = produto.split("-");
			$("#precotabela").val(informacoesProduto[0]);
			$("#desconto").val(" ");
			$("#preco").val(informacoesProduto[0]);
		},
	});//linha 35

já tentei com jquery.noConflict e nada. Se alguém tiver alguma sugestão onde eu possa acertar isso eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até aí, tudo beleza, mais pra todos os navegadores com exceção o ie.

 

E aparece algum erro ? qual ?

 

o noConflit é para usar varias bibliotecas, e não para evitar incompatilibidade de browsers.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro não dá, ou pelo menos não aparece para eu poder visualizar. Quando carrego o ie, na barra de estatus, no lado esquerdo, aparece que a página foi carregada mais vai funcionar de forma errada. O que está escrito, de erro é isso:

 

identificador, seguencia ou número esperado

aplicacao.js linha:35

function exibePrecoTabela(produto) 
{
	$.ajax
	({
		type: "GET",
		url: "view/processa.php",
		data: "produto=" + produto,
		success: function(produto) 
		{
			informacoesProduto = produto.split("-");
			$("#precotabela").val(informacoesProduto[0]);
			$("#desconto").val(" ");
			$("#preco").val(informacoesProduto[0]);
		},
	});//aqui é a linha 35
} 

o outro erro que ocorre é o Objeto esperado na página index, linha 611, código 0, Caractere: 1.

 

essa é a linha 611


<select class="tfield" onchange="exibePrecoTabela(this.value);exibeClassificacao(this.value);" name="produto" style="width:580">

não sei exatamente que erro é esse que ocorre, mais no ie não funciona.

 

Se alguém souber como se resolve esse problema, por favor me ajudem pois já tentei de tudo que eu sabia para resolver. Com relação ao jquery noConflict eu sei que o seu uso é por incompatibilidade de bibliotecas, como estou usando uma biblioteca chamada protptype, precisei usar deste artifício já que tive problemas similar a esse em outra ocasião. Agora, utilizando o mesmo artifício, não funcionou.

 

obrigado,

 

Alexandre

 

 

Até aí, tudo beleza, mais pra todos os navegadores com exceção o ie.

 

E aparece algum erro ? qual ?

 

o noConflit é para usar varias bibliotecas, e não para evitar incompatilibidade de browsers.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido.

 

Para funcionar no ie tem que deixar assim:

 

$(function () {
	$("#preco").blur(function () {
		var preco = $(this).val();
		var precotabela = $("#precotabela").val();
		$.ajax({
			type: "GET",
			url: "view/desconto.php",
			data: "preco="+preco+"&precotabela="+precotabela,
			success: function(preco){
				informacoesPreco = preco.split("-");
				$("#desconto").val(informacoesPreco[0]);
			}
		});
	});
});

e no campo de input não fazer nada. qndo se tira o foco do campo, o jquery dispara o evento..

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.