Ir para conteúdo

POWERED BY:

Arquivado

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

ndecastro

[Resolvido] Problemas em recuperar valor de ComboBox

Recommended Posts

Boa noite,

 

Eu tenho um form que carrega um combobox contendo os produtos de acordo com a categoria que é selecionado, faço isso usando ajax, entretanto, quando submeto meu form, ele gerá um erro.

 

O erro eu já sei como é causado, ou melhor, eu sei o que não acontece, sendo mais claro, o valor do combo não esta sendo enviado, mas, estranhamente, ele não funciona em nenhum navegador exceto o IE.

 

Aqui está o link para darem uma olhada(liberei esta parte para terem acesso, caso alguem não consiga me avise).

Click Aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para recuperar valores, a pagina que recebe os dados do formulario precisa usar o request.form("nome_do_campo")

Note que o nome_do_campo precisa ter o mesmo nome que o usado no formulário.

se houver no formulario outro campo com mesmo nome, vai gerar erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade, Vinicius Ianni, acredito que se você tiver 2 campos com o nome "nota", por exemplo, e no primeiro campo tiver o valor "10", e no segundo "5", e usar request.form("nota"), o resultado será "10, 5". Ele pega os valores do campo e separa com vírgulas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele gera algum número de erro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite,

 

Desculpa a demora em responder, mas devido ao problema no computador não tive como entrar online mais cedo.

 

Agora indo ao problema.

 

Vinicius Ianni

Esse não é problema, pois já tentei usar Request.Form e Request.QueryString, claro que fazendo todas as mudanças devidas e mesmo assim não funcionou.

 

xanburzum

Ele não gera número de erro, mas exibe o erro.

 

Aparece a seguinte mensagem:

Microsoft JET Database Engine error '80040e14'

 

Syntax error (missing operator) in query expression 'ID ='.

 

 

 

SemPapasNaLingua

Segue abaixo os códigos das páginas envolvidas no processo.

Página responsavel pela alteração do banco de dados.

<%
	Dim sql
	Dim tipo
	tipo = Request.QueryString("tipo")
	Dim produto
	produto = Request.Form("produto")
	
	if tipo = "cad" then
		sql = "UPDATE TblProdutos SET colecao = "& Request.QueryString("colecao") &" WHERE ID = " & produto
		
		ExeSql(sql)
		
		msg = "alert('Produto incluido na coleção com sucesso!')"
	end if
	
	
	
	Response.Redirect("admin_colecoes_editar.asp?colecao=" & Request.QueryString("colecao") & "&msg=" & msg)
%>

Página responsavel pela busca de produtos


Produto<br />
<select name="produto" id="produto" class="texto" onChange="teste(this.value);">
	<option value="0">Selecione um produto</option>
	<%
		Dim id
		id = Request.QueryString("id")
		sql = "SELECT ID, NOME_PRODUTO, COD_BARRA FROM TblProdutos WHERE Categoria = "& id &" AND colecao = 0 ORDER BY NOME_PRODUTO ASC"
		Set rs1 = ExeSql(sql)
		
		if not rs1.EOF then
			Dim nome
			while not rs1.EOF
				if rs1("NOME_PRODUTO") <> "" or len(rs1("NOME_PRODUTO")) > 0 then
					nome = rs1("NOME_PRODUTO")
					nome = Replace(nome, "á", "á")
					nome = Replace(nome, "ã", "ã")
					nome = Replace(nome, "õ", "õ")
					nome = Replace(nome, "ó", "ó")
					nome = Replace(nome, "ô", "ô")
					nome = Replace(nome, "é", "é")
					nome = Replace(nome, "ê", "ê")
					nome = Replace(nome, "ç", "ç")
					nome = Replace(nome, "â", "â")
					nome = Replace(nome, "í", "í")
				else
					nome = rs1("COD_BARRA")
				end if
	%>
		<option value="<%=rs1("ID")%>"><%=nome%></option>
	<%
				rs1.MoveNext
			wend
		end if
	%>
</select>

Formulario que faz a requisição


<table border="0"  width="100%" cellpadding="0" cellspacing="0" align="center">
	<tr align="left">
		<td valign="bottom" class="txtlinknoticias" width="250" colspan="3">
			Coleção <%=Request.QueryString("colecao")%><br><br><br>
		</td>
	</tr>
<form name="cadastro" id="cadastro" action="cod_colecoes.asp?tipo=<%=tipo%>&colecao=<%=Request.QueryString("colecao")%>" method="post">
	<tr align="left">
		<td valign="bottom" class="textocorrido_cor" width="250">
			<span class="texto">Categoria<br />
				<select name="categoria" id="categoria" class="texto" onChange="MandaID('busca_produtos.asp?id='+this.value+'', 'selectProduto');">
					<option value="0">Seleciona a categoria</option>
					<%
						sql = "SELECT * FROM TblCategorias ORDER BY categoria ASC"
						Set rs1 = ExeSql(sql)
						
						if not rs1.EOF then
							while not rs1.EOF
					%>
						<option value="<%=rs1("id")%>" <%if rs1("id") = Categoria then%>selected<%end if%>><%=rs1("categoria")%></option>
					<%
								rs1.MoveNext
							wend
						end if
					%>
				</select>
			</span>
		</td>
		<td valign="bottom" class="textocorrido_cor" width="150">
			<span class="texto" id="selectProduto">Produto<br />
				<select name="produto" id="produto" class="texto">
					<option value="0">Seleciona a categoria</option>
				</select>
			</span>
			<input type="hidden" name="produtoSelecionado" value="0">
		</td>
		<td class="texto" align="left" valign="bottom">
			    <input type="image" src="../imagens/admin/botao-salvar.gif" border="0" name="cadastrar" value="Cadastrar">
		</td>
	</tr>
</form>
</table>

Já revisei todo o código e não consigo achar o problema, está tudo certo (pelo menos aparentemente), mas mesmo assim não esta dando certo.

 

Podem testar a inclusão, mas façam isso no IE e nos outros navegadores, para poderem ver o que acontece.

Compartilhar este post


Link para o post
Compartilhar em outros sites

produto está vazio, verifique o nome do campo.

 

O nome está certo, verifiquei isso também. O estranho que só esta funcionando no IE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

para esse erro 80040e14, Verifique a ortografia. pode ser um nome de coluna Invalido 'sua_coluna'. A coluna a qual você se refere na Base de Dados não foi encontrada.

 

dá um response.write na string SQL, para ver o k esta sendo passado

response.write(SQL)

response.end()

Compartilhar este post


Link para o post
Compartilhar em outros sites

para esse erro 80040e14, Verifique a ortografia. pode ser um nome de coluna Invalido 'sua_coluna'. A coluna a qual você se refere na Base de Dados não foi encontrada.

 

dá um response.write na string SQL, para ver o k esta sendo passado

response.write(SQL)

response.end()

 

eu já fiz isso, e no lugar onde deveria aparecer o valor da variável aparece vazio. Com relação em ser o nome da coluna, eu já olhei isso também e caso fosse esse problema de nome de campo em tabela não funcionaria no IE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

exatamente isso, e este está sendo o meu grande problema. Se fosse programação desktop até eu entenderia que o porque do problema, mas é um sistema web, isso não era para acontecer...ainda mais que o problema é no lado servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique como você esta recuperando os valores e veja se ele realmente esta recuperando

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique como você esta recuperando os valores e veja se ele realmente esta recuperando

 

se eu testar isso usando o IE, ele vai funcionar...mas se executar a mesma página em outro navegador, ele não recupera nada. A grande questão é onde está o problema? É na recuperação da informações ou na hora em que são passadas para o servidor?

 

O estranho que nunca tive problema com este código em qualquer tipo de navegador, sempre funcionou.

 

Eu postei os códigos de todas as páginas envolvidas no processo, dêem uma olhada para ver o que acha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

provavelmente na hora que são passadas pro servidor, porque o servidor roda igual independente do navegador.

 

mas onde será que está ocorrendo o erro? o que será que está acontecendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique nos outros navegadores se esta rodando algum plugin, que esteja impedindo de executar

Compartilhar este post


Link para o post
Compartilhar em outros sites

e ele continua corretamente apenas no IE ??

você esta testando ele no host ou localhost...

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.