Ir para conteúdo

POWERED BY:

Arquivado

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

marcelocardoso

[Resolvido] SQL update na COMBOBOX com ajax não atualiza

Recommended Posts

Xanburzum!

 

Peguei teu código, mas foge do que preciso, preciso sim é de um CHECKBOX, onde seleciona as CATEGORIAS, e ao escolher as CATEGORIAS, monte as SUBCATEGORIAS.

 

 

E isso o código que tenho neste poste que está pendurado, ele faz... tranquilo!!!

Mas oque preciso, é:

 

É numa listagem de produtos, clicar no produto, e enviar para uma pagina de update, onde vou atualizar o NOME, DESCRICAO, CATEGORIA e SUBCATEGORIA.

 

 

Ou seja, preciso daí usar o mesmo codigo que funciona neste meu exemplo, mas fazer que com ele no resgate do produto para edição, já me traga esta COMBOBOX, atualizada tanto a CATEGORIA como a SUBCATEGORIA pelos dados ja gravados no banco de dados.

 

 

Tem que ser possível isso,

Consegue me ajudar a só resolver isso.

 

 

Pois pelo que já testei, e meu exemplo online, ele traz a CATEGORIA, mas só a SUBCATEGORIA não...

Não deve ser muita coisa, só me falta isso.

 

 

 

Veja se consegue me ajudar amigo.

Te agradeceria muito mesmo.

 

 

Um forte abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se é uma edição você deve trazer os SELECTs já montados com os dados que estão já gravados.

 

O problema é que ao entrar na pagina editar.asp o select da subcategoria não vem preenchido?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Salgado, vou entendeu o que eu preciso! na mosca.

 

 

Meu problema é este mesmo.

O problema é que ao entrar na pagina editar.asp o select da subcategoria não vem preenchido?

 

Como voce perguntou, eu consigo fazer o select, e trazer selecionado, mas a subcategoria não fica selecionado, e isso é que estou tentando atraves do forum resolver, pois só falta isso.

 

se faço uma pagina de insert, ele abre a categoria e a subcategoria sem problemas, mas meu problema mesmo é no update.

 

 

Consegue me ajudar?????

 

Aqui tem um exemplo SALGADO!

 

 

http://free.7host05.com/marmmc/

 

pode notar que envio uns valores como se fosse de um form, e vai para uma pagina editar.asp, onde deveria trazer selecionado a sub tambem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando entrar monte o SELECT diretamente, sem usar AJAX. O AJAX só irá servir caso seja alterada a CATEGORIA, com isso você carrega as SubCategorias dessa nova selecionada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá SALGADO!

 

Também pensei em fazer isso, trazer selecionado cada item na combo, certo!

Mas como é uma pagina para ATUALIZAR dados, e se eu precisar TROCAR a CATEGORIA e a SUBNOVAMENTE, não tem como fazer isso, TERIA quer ser algo que trouxesse selecionado, e se precisasse também escolher novamente, ele montasse as categorias e sub.

 

TIPO:

 

A CATEGORIA seleciona a categoria gravada no banco

A SUBCATEGORIA seleciona a subcategoria gravada no banco

 

Aí se precisa trocar, eu clicaria na combo selecionada e ela me montasse a subcategoria novamente, para assim eu poder atualizar no banco de dados. ok

 

 

Entendeu???

 

 

Isso é possível?

E se não for, será que com combo que dá refresh na página não daria???

 

 

Aguardo seu retorno, pois meu conhecimento não cobre isso.

Estou bem perdido nesta combo, e não saí do lugar ainda.

 

 

 

Acho que isso solucionado, seria uma boa para todos, oque acha???

 

 

 

 

Até mais.

Fico no teu aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você já não monta o SELECT de Categora e marca qual foi selecionado? É só fazer a mesma coisa para a Sub-Categoria, com o valor da Cat selecionada você monta e marca com o valor da Sub que está no BD. Você mantém o AJAX para o caso de alterar a Cat.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vou tentar salgado, não sei se é burrice minha, mas vou tentar, e qualquer coisa retorno.

 

Obrigado mais uma vez....

Burrice com certeza não é!

 

Já conseguiu resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Salgado, realmente também sei que burrice não é, acho que falta de conhecimento mesmo.

Consegui e consigo fazer ele trazer selecionado, e até então consegui fazer ele ficar selecionado, tanto categoria e subcategoria, mas ACONTECE que se depois de abrir a página editar, e resgatar todos os dados do banco e expor na tela.

 

 

Ele me traz selecionado a categoria e a sub, mas se dai eu tento pela categoria selecionar uma nova opção ele não atualiza a subcategoria.

Isso que está me quebrando agora....

 

Tua dica resolveu em partes, mas agora não sei como terminar esta parte de ajax...

Pois não está funcionando.

 

Vou postar abaixo oque estou usando.

SEGUE:

 

 

 

CONEXAO.ASP

<%
  SESSION.LCID		   = 1033 
  SERVER.SCRIPTTIMEOUT   = 5000
  
  Dim CONQ_CX
  SET CONQ_CX			= Server.CreateObject("ADODB.Connection")
					  DB = Server.MapPath("editar.mdb")
				 CAMINHO = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DB & ";"
	CONQ_CX.OPEN CAMINHO
%>

 

DEFAULT.ASP

<style type="text/css">
<!--
.style1 {color: #003399}
.style2 {
	color: #990000;
	font-weight: bold;
}
a:link {
	color: #FF0000;
}
a:visited {
	color: #FF0000;
}
a:hover {
	color: #FF6600;
}
a:active {
	color: #000000;
}
-->
</style>
<p><strong>PESSOAL!</strong><br>
  <br>
  <br>
  <br>
  <br>
Digamos que esta seja uma página onde tenho listado produtos qualquer, ok</p>
<p>E vou estar passando ao link editar o valor <strong>id=1&categoria=teste4&subcategoria=cd3</strong> que no caso seria a categoria do produto<br />
  E que na pagina editar.asp, ele resgata e joga na combo...<br />
  Mas não acontece nada.
  <br>
	<span class="style1"><strong><br>
  </strong></span>
</p>
<div align="center"><span class="style1"><strong>FOTO DO PRODUTO</strong></span> ---------------------------------------------------------------------------------------------------------- <span class="style2"><a href="editar.asp?id=1&categoriaprod=teste4&subcategoria=cd3" target="_parent">EDITAR</a></span> </div>

 

 

EDITAR.ASP


<!--#include file="conexao.asp" -->
<%
 CODPROD1 = request("id")
 CODPROD2 = request("categoriaprod")
 CODPROD3 = request("subcategoria")
			response.write "codigo resgatado id	=  " & codprod1 & "<br>"
			response.write "codigo resgatado categoria	=  " & codprod2 & "<br>"
			response.write "codigo resgatado subcategoria =  " & codprod3 & "<br>"

 SQL	= "SELECT * FROM MP3 WHERE id = "& codprod1
 response.write "<br>" & sql
 SET EditProd = Server.CreateObject("ADODB.RECORDSET")
	 EditProd.Open SQL, CONQ_CX, 3
%>
<HTML>
<HEAD><TITLE></TITLE>
<script language="javascript" type="text/javascript">
	var xmlHttp
function submeterIdCategoria(str){xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null){
 alert ("Este browser não suporta HTTP Request")
 return}
 var url = "editar_combobox.asp?id=<%=codprod1%>"
	 url = url+"?id_categoria="+str
	 url = url+"&sid="+Math.random()
		   xmlHttp.onreadystatechange=stateChanged
		   xmlHttp.open("GET",url,true)
		   xmlHttp.send(null)
}
function stateChanged(){if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){document.getElementById("categoriaprod").innerHTML=xmlHttp.responseText}}
function GetXmlHttpObject(){
	 var objXMLHttp=null
	  if (window.XMLHttpRequest){objXMLHttp=new XMLHttpRequest()}
 else if (window.ActiveXObject){objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")} return objXMLHttp
}
</script>
</HEAD>
<BODY>

<form action="editar_db.asp" method="post" name="frm" target="_parent" id="frm">
  <table width="100%" border="0" cellspacing="2" cellpadding="2">
	<tr>
	  <td width="3%" height="55"> </td>
	  <td width="16%"> </td>
	  <td width="81%"> </td>
	</tr>
	<tr>
	  <td> </td>
	  <td bgcolor="#F8F8F8"><span class="rodape2titulo">  Categoria do MP3: </span></td>
	  <td valign="top">
	  <%
				SQL2 = "SELECT * FROM CATEGORIAS ORDER BY CONQ_MENU_CategoriaNome ASC"
				SET CMBX1 = Server.CreateObject("ADODB.RECORDSET")
					CMBX1.Open SQL2, CONQ_CX, 3
				%>
		  <select name="conq_produtos4" id="conq_produtos4" onChange="submeterIdCategoria(this.value)">
			<option value="">Selecione uma Categoria</option>
			<% 
				WHILE NOT CMBX1.EOF 
				%>
			<option value="<%=CMBX1("CONQ_MENU_CategoriaNome")%>"<%IF CMBX1("CONQ_MENU_CategoriaNome") = EditProd("categoriaprod") THEN : Response.Write "selected" : END IF%>><%=CMBX1("CONQ_MENU_CategoriaNome")%></option>
			<% 
				CMBX1.MOVENEXT
					  WEND
				%>
		</select></td>
	</tr>
	<tr>
	  <td> </td>
	  <td bgcolor="#F8F8F8"><span class="rodape2titulo">  Sub-Categoria do MP3:</span></td>
	  <td valign="top"><div id="categoria">
			<%
				SQL3 = "SELECT * FROM CATEGORIASUB ORDER BY CONQ_MENU_SubNome ASC"
				SET CMBX2 = Server.CreateObject("ADODB.RECORDSET")
					CMBX2.Open SQL3, CONQ_CX, 3
				%>
				<select name="conq_produto5" id="conq_produto5">
				<% 
				WHILE NOT CMBX2.EOF 
				%>
				<option value="<%=CMBX2("CONQ_MENU_SubNome")%>"<%IF ""&CMBX2("CONQ_MENU_SubNome")&"" = ""&EditProd("subcategoriaprod")&"" THEN : Response.Write "selected" : END IF%>><%=CMBX2("CONQ_MENU_SubNome")%></option>
				<% 
				CMBX2.MOVENEXT
					  WEND
				%>
			  </select>
			</div>   
		</td>
	</tr>
	<tr>
	  <td> </td>
	  <td> </td>
	  <td> </td>
	</tr>
	<tr>
	  <td> </td>
	  <td> </td>
	  <td><input name="button" type="submit" class="inputAltoBlue" id="button" value="Salvar"></td>
	</tr>
	<tr>
	  <td> </td>
	  <td> </td>
	  <td> </td>
	</tr>
  </table>
</form>
</BODY>
</HTML>

 

 

 

EDITAR_COMBOBOX.ASP

<!--#include file="conexao.asp" -->
<%
 RESPONSE.CHARSET = "ISO-8859-1"
%>
<select name="conq_produtos5">
<% 
IF Request("id") = "" THEN
%>
<option value="">Selecione uma Sub-categoria</option>
<% 
ELSE	   
		EscreveComboBox = "SELECT * FROM CONQ_MENU_CATEGORIASUB WHERE CONQ_MENU_IdCat = '" & Request("id_categoria") &"'"
						   Response.Write EscreveComboBox
			  SET CMBX3 = CONQ_CX.EXECUTE(EscreveComboBox)
		WHILE NOT CMBX3.EOF
%>
<option value="<%=CMBX3("CONQ_MENU_IdCat") %>"><%=CMBX3("CONQ_MENU_SubNome") %></option>
<% 
		CMBX3.MOVENEXT
			  WEND
	SET CMBX3 = NOTHING
END IF
%>
</select>

 

Este código está funcionando, fiz um exemplo aqui, e testo e funciona conforme mencionei acima, no editar ele já traz selecionado conforme os dados que passo pelo link da tela DEFAULT.ASP, mas acontece que ao escolher uma nova categoria, o ajax deveria mudar também... mas não acontece.

 

 

Se puder ajudar salgado, agradeço.

Só falta isso, para terminar.

 

 

Obrigado!

 

 

TEM O LINK AQUI PARA DOWNLOAD E VISUALIZAÇÃO ONLINE, TUDO TESTADO E SEM VIRUS.

http://free.7host05.com/marmmc/default.asp

http://user1.7host.com/marmmc//combobox.zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro reportado no console do FireFox:

Erro: document.getElementById("categoriaprod") is null
Arquivo fonte: http://free.7host05.com/marmmc/editar.asp?id=1&categoriaprod=teste4&subcategoria=cd3
Linha: 17

No seu JavaScript do AJAX você tenta alterar a DIV "categoriaprod" mas no seu HTML está <div id="categoria">. acerte isso e teste novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande SALGADO!

 

Quero aqui te agradecer, e dizer que realmente era erro mesmo, resolvi isso, e não funcionou, aí depois ví que estava colocando campos errados ID, e arrumei, e funcionou perfeitamente, está fazendo agora tudo oque queria....

 

VALEU MAIS UMA VEZ.

Agora já aprendi a fazer isso com ajax, e agora estou montando um tutorial bem explicativo aqui e vou imprimir para não esquecer mais....

VALEU MESMO.

 

 

Continue assim, GENTE FINA!

 

 

Deus te abençoe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que conseguiu resolver.

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.